Text

iOS9 and My Tweaks

iOS9 is jailbroken, in what seems like record time. It’s impressive, to say the least, considering the introduction of some interesting new security models in the OS. Kudos to the insanely smart developers out there that were able to pull off that feat.

I’ve already begun to get questions about when LockInfo and Forecast will be available on the new OS. It’s a question that I’ve been trying to answer for myself for a while now. After much soul searching, I’ve decided that it’s time to put these tweaks to rest.

LockInfo and Forecast will not be updated to support iOS9.

First and foremost, Apple has done a good job of “Sherlocking” many popular jailbreak tweaks recently and has left far less room for improvement. It’s not to say that there isn’t any room left, but as I’ve upgraded through these releases, I’ve found myself less and less wanting for tweaks with each iteration.

Second, I recently moved into a new position for my full time job and this new position takes a lot of my time - often beyond the “in the office” time. I’ve had to decide where to focus my attention, and at this point, my attention needs to be on my full time work.

This is not goodbye, but simply “see you later”. If time frees up and the inspiration hits me, I’ll come back to iOS. Thank you all for your support over the last 6+ years.

Text

What to expect when you’re expecting… LockInfo 8.

Every year, Apple releases a new iOS version. And with that release, Apple makes some minor and some major changes to both the visual and UX behaviors of the OS and to the underlying architecture of the OS. Soon after, the talented “dev teams” work to jailbreak the OS. Once they have accomplished this astounding task (what they can do simply amazes me), I have the opportunity to work on LockInfo for the new OS.

With each cycle, I like to take a look at what LockInfo is doing and how it dovetails with the OS. Features and functionality that made sense on a previous OS don’t necessarily integrate well on the updated OS. My goal is to make LockInfo feel as native and seamless with the OS as possible. Each version of LockInfo will be different from the previous version in order to provide the optimal user experience.

In anticipation of the upcoming release, here are a few points to consider:

  1. LockInfo 8 won’t be a replica of LockInfo 7. There will be a lot of familiar parts, but there will also be differences too.
  2. LockInfo 8 will evolve, as has each previous release. New features will be continuously added to LockInfo 8 as I’m able to complete them. I welcome your feedback and suggestions.
  3. Be patient. This type of work is demanding. I am committed to making LockInfo 8 the best it can be.

Finally, I need to bring up the forbidden topic of cost. In the five years since LockInfo was released, upgrades have been offered for free. However, with each new release, it has become increasingly complex and sophisticated to integrate LockInfo into iOS. In order to manage this complexity, I will be charging an upgrade fee to move from earlier versions of LockInfo to LockInfo 8.

  1. LockInfo 5-7 owners will need to pay a $1.99 upgrade fee for LockInfo 8.
  2. If you purchased LockInfo after July 1, 2014, you will not need to pay the upgrade fee.
Text

Beta testing and logs

I’m ramping up development of my tweaks for iOS8. Currently, iOS8 doesn’t support syslogd so providing logs and feedback is a bit more difficult. If you are testing any of my tweaks, please take a look at Ryan Petrich’s deviceconsole application. Clone it, compile it and run it with your device connected to your computer. This will stream the logs to the terminal. Pipe that into a file and you have a syslog. Obviously, you’ll need to reproduce the crash to help out.

Please recognize that I need support from testers to help out. I obviously do my best to not introduce crashes and of course my tweaks are not crashing on my device, but crashes happen and conflicts happen. Without the logs, I’m lost.

Text

Extending the Lockscreen with LockPages

With the re-release of Forecast, I introduced a new package called LockPages to support adding additional pages to the lockscreen. LockPages is designed to be extended by other tweaks to add pages to the lockscreen in a compatible way. So how does it work. First, you need to implement a protocol in your tweak:

@protocol LPPage <NSObject>

// Return the view that should be shown on the page
-(UIView*) view;

// The priority of the page.  Pages will be ordered in descending priority order.
-(NSInteger) priority;

@optional
// Called as the page is being scrolled into view.
-(void) pageWillPresent;
// Called after the scrolling stops on the view.
-(void) pageDidPresent;
// Called as the page scrolling begins from this view.
// This is only called if the scrolling had stopped on this page.
-(void) pageWillDismiss;
// Called as the page scrolls out of view.
-(void) pageDidDismiss;

// Allows the page to override the idle dim time interval.
-(CGFloat) idleTimerInterval;

// Show the time in the status bar on this page.  Default is true;
-(BOOL) isTimeEnabled;

@end

The critical parts are returning the view to render and setting a priority. Pages are rendered in descending priority order. The optional methods allow you to react to page changes and to control dim time while your page is showing.

Once the page is implemented, you register the page while initializing your tweak using a single method:

[[LPPageController sharedInstance] addPage:page];

Only call addPage: once, though. If the page view is hidden or the -(UIView*) view method returns nil, the page will not be shown on the lockscreen.

Make sure your project links to the dylib linked here and depends on com.dba-tech.lockpages.

Text

Jailbreak Drama

The recent release of evasi0n7 was a surprise to all of us. I had no idea that the team was this close to a jailbreak for the public - and I’m obviously not alone. But all the drama surrounding this jailbreak release is truly perplexing. Did they release early because they wanted to be the first ones out? Did they release because of some mysterious lucrative contact with a Chinese company?

Regardless of the reason, the release was obviously rushed and we might never know the true reason it was released prematurely. I will say that if it was financially driven, so be it. Anyone that has worked for a profitable company knows what it means to need to be “first to market’ and that pushing mostly-baked code based on an arbitrary, contract-driven date is common - far too common.

The developers behind evad3rs deserve compensation for the work they do - it’s difficult, time consuming work that millions of people use and never pay for. What I’m not sure about is how they went about getting paid. The Chinese company that they partnered with is obviously very sketchy. The evad3rs claim that they didn’t know about the piracy and that Taig was contractually obligated to remove piracy. I don’t know if that’s true - I don’t work with the evad3rs or have any more information than everyone else has. If they knew about the piracy, shame on them. If not, shame on Taig. Regardless, the evad3rs’ decision to include Taig’s app for financial compensation is not wrong - it’s how business works.

Now onto piracy…

Piracy is piracy. The people that steal apps are going to steal them no matter how hard you make it. If the evad3rs hadn’t included the Taig app or the Taig app had removed all pirated apps in it’s store, users that want to steal the hard work of developers would just add the well-known piracy sources to Cydia directly. Piracy in the jailbreak world is not new - it’s been there as long as I’ve been in it, and over 90% of the users of my apps never paid for them - that was all before Taig.

What’s more concerning about the Taig thing is it somewhat legitimizes piracy (even if the evad3rs don’t directly support it) because it supports the widely (and incorrectly) perceived link between jailbreaking and piracy. I can’t tell you how many times I’ve had to explain the difference to someone I tell about my apps. I don’t work with or know a single person that has stolen a single app after jailbreaking - but those people do exist.

The long and short of it is, the evad3rs made a mistake. If it was an honest mistake, give them a break - they are only human and everyone is entitled to make mistakes. If they intentionally included a piracy app for financial gain, they are just as bad as the people that steal the apps. But in either case, their actions should not derail the jailbreaking community - there are millions of honest people that like to jailbreak to make their phones do things that Apple doesn’t want them to do (Apple: just open up iOS, please…). I plan to continue to develop for jailbroken phones (though it’s going to take a while to catch up this time).

Text

Charging for Change

I don’t like it when developers charge for product updates. I feel that it’s unfairly punishing consumers for decisions the developer has made. If a developer has chosen a sales model based on an up front software purchase, they should expect that their revenue stream from each consumer ends at the point of sale. It’s not the consumer’s fault - it’s the developer’s.

Developer’s might argue that they need to absorb the costs to maintain and develop updates for their apps when the platform they develop for changes (i.e. updates for iOS7). But this rationale is flawed. Any vibrant and high quality platform (iOS included) is built around backward compatibility. All iOS6-developed apps will work fine on iOS7. Will they look great - maybe not. Will they take advantage of all the great new things iOS7 offers - no. Is that the consumer’s fault - no. If the developer doesn’t want to update, they don’t have to - and if consumers complain and choose the competitor’s product, that’s free market economics for you.

If the developer depends on continued revenue, there are several options:

  1. Use in-app purchases to offer add-ons or additional features that don’t come with the base app - but don’t convert previously free features to paid features to monetize.
  2. Use a subscription model - if the user goes into the product expecting a $5 per year payment, that’s fine - it’s a decision the consumer made.
  3. Come up with new ideas - one-trick ponies will always run out of revenue streams. If you want to grow, grow your portfolio.

In short, don’t punish your consumers for decisions you make. It’s a great way to piss off your consumers.

Text

LockInfo 7

Even though iOS7 hasn’t been released and there are only passing rumors of a possible jailbreak for the new OS, I get a consistent flow of questions about the future of LockInfo. This short blog is intended to be as transparent as possible and give you all the information I know at this point.

I do intend to develop a new version of LockInfo for iOS7. It will be another complete rewrite though since there have been significant changes to the way notifications work and how they are presented in the new OS.

The version would be LockInfo 7. LockInfo 5 was the fifth version and supported iOS5 and iOS6. But many people were confused by this. Since the new one would only support iOS7, it will be LockInfo 7.

The update will be free. Just as with all other LockInfo updates, I will be providing the update for all current licensees for free.

I have no idea how long it will take to get the update done. I don’t have a jailbreak, I don’t know when the jailbreak will be available, I haven’t even looked through dumped headers to see what has changed. Even if the jailbreak comes out on the first day iOS7 is available, it will take a while to understand the changes and rewrite the code to work on the new OS.

I am also very busy with things outside of the jailbreak world. The jailbreak community has changed a lot of the last couple years and so have I. I have other focuses that reduce the time that I have available to work on tweaks. I will make every effort to be quick, but things happen.

And of course, I do reserve the right to change my mind. I want to make a new LockInfo, and I plan to try. But if life gets in the way, I can’t control that. I will continue to support the current version of LockInfo, but any future releases are dependent on time, resources and complexity.

Please refrain from asking about ideas, screenshots, mockups or betas. I don’t have any (except for a few ideas) so there is nothing to share right now.

Text

I Hear You…

Firstly, thanks to those of you who have taken the time to explore LockInfo 5 and helped other people out with questions and concerns. It’s always nice to have people “in the trenches” helping out while my inbox is getting filled with emails.

To those of you that have voiced concerns about the direction LockInfo 5 has gone, it’s worth reading my blog http://blog.dba-technologies.com/pos…kinfo-rebooted to understand the design thoughts I had when approaching this project. The decisions were not made haphazardly.

My rationale for the rewrite, for those of you who are not technical, is that the original LockInfo code base, the one that powered LockInfo 4, is three years old and is based heavily on code that existed back in iOS3. It didn’t leverage new frameworks like Theos or new iOS frameworks. It didn’t integrate will with the notification system and resulted in a lot of inconsistency with the state of the system. The iOS ecosystem is very different now and the maintenance costs of LockInfo had reached the point that a rewrite was necessary. And when it came time to rewrite, I also looked to simplify the overly complex settings that LockInfo 4 and earlier came with.

I do want to have satisfied users. I do want to continue to iterate on LockInfo 5 to provide a tool that everyone will enjoy using. That will not be LockInfo 4 on iOS6 - that’s just not going to happen. But it will be a new LockInfo that supports some of the features of LockInfo 4, but many that LockInfo never had. It will support a standard plugin architecture that will allow it to use any NC widget.

If there are usability issues that you feel need to be addressed, email me. I may not be able to reply immediately (I’m focused right now on license issues and critical bugs) and you may not see those features immediately in the product, but I do want to continue to improve LockInfo.

Email me at support (at) dba-technologies (dot) com.

All I ask is for the conversation to be constructive.

Text

LockInfo 5 Plans

Now that the iOS6 jailbreak is imminent, you might be wondering about plans for LockInfo.

LockInfo 5 has been in alpha testing for quite a while but little work has been done on it recently due to the lack of a real iOS6 jailbreak on the horizon. Now, work is continuing aggressively to get it ready for a real release. New features are showing up and bugs are getting fixed left and right.

Based on the recent DMCA exception changes, I don’t know yet what I will be doing with iPad support. If it’s illegal to jailbreak an iPad, it’s going to be difficult to develop the tweak really. But I plan to follow the jailbreak team’s lead on this and see what happens at release time. iPad support is mostly there, except for some odd unique issues that I need to work out.

I hope to have a beta release of LockInfo 5 in the next week and a final release shortly after.

Text

Android for an iOS Developer - Day 1

So I’m trying a little experiment… it’s called Android.

I’ve been bored with iOS on my phone for a while, especially without a jailbreak in order to make it work the way I want. So I started toying with the idea of trying something else. Windows Phone is cool, but the app market is so thin right now, it’s just doesn’t work. BB10… well… So that left Android. But if I was going to do it, I wanted to make sure I could use the latest and greatest… so I picked up a used Galaxy Nexus from an awesome follower in Twitter.

Day 1

Today is my first day on Android. The Galaxy Nexus is a decent device… no iPhone 5 though. The build quality is decent, the internal speaker sucks. The notification LED is nice. The screen gathers oil like the Gulf of Mexico. But for a trial device, it’s a great place to start.

The device was already rooted and ready for JB 4.2.1. I immediately installed the AOKP ROM and the Gapps. So far, so good. I’ve been fooling with different launchers and tweaks and I do admit that the customizability of the OS is nice - but in many ways it’s confusing as hell - and very inconsistent. Once I get things in order and get used to it, I think it will be a nice place to be.

I’m a bit frustrated that my corporate Exchange profile doesn’t allow me to use lockscreen widgets on JB 4.2 - or at least I haven’t figured out how to yet. I’m sure there are ways to do it on a rooted device - considering I could do things like wipe out the entire profile on iOS once it’s jailbroken with no issue at all. We’ll see.

So it’s just the first day - too early to have a real opinion. I’m determined to give it a few weeks. I don’t think this is me leaving iOS - I still love my iPad mini. But I needed something different in my pocket.