Getting an early start in developing when he was 8 years old, CoolStar began making simple apps for Windows XP in Visual Basic and later moved on to C++ then eventually onto Obj-C. He only regrets not starting with on-device development as it set him back a year trying to find the right tool-chain for developing for iOS on Linux and Windows (which is not easy). CoolStar recommends starting with high level languages like Python or Visual Basic for new developers as there is a lot of abstraction done for you like memory management, enabling one to focus on building a single skill at a time. This seems like really good advice since there is really no easy way to start learning programming languages.
He has high hopes and aspirations for the jailbreak community going forward; planning on releasing some recovery utilities to help users who are stuck in infamous bootloop situations. These will allow users to perform basic functions to repair whatever damage they might have incurred due to installing a poorly written tweak or modifying the wrong system files. This could help people avoid having to update to the latest un-jailbreakable iOS firmware. This is an incredibly selfless motive and he doesn’t get enough recognition for it. He’s already made a name for himself developing something similar called Semi-Restore which is a Windows and Linux utility that performs a soft-restore, while retaining the jailbreak. The main difference is these new utilities will run on device and might not force the user to wipe the device and start from scratch. He (among others) has high hopes that Apple will open up their software to power users and release an “unlocked” firmware for which they don’t provide official support. Only time till tell if Apple will ever do this, but then again they wouldn’t get as much free security research.
CoolStar also talks about his inspirations for porting his favorite UI elements of iOS 6 to iOS 7 and iOS 8 in the form of his “Classic” suite of tweaks as well as making Anemone (a Winterboard replacement) and what makes a good beta tester. Check out the full interview below for more!
Question #1: Can you tell the story of how you got into developing?
I originally started developing when I was 8. Back then, I used to make some simple apps in Visual Basic on Windows XP. In 2010, I started developing in C++ with GTK when I discovered Ubuntu. The apps were fairly simple games but got me into programming. Later in 2010, I got my first iPod touch 3G. I jailbroke it with jailbreakme and really wanted to program on it. Finally, in 2012 I was able to get access to a compiler for iOS. The transition from C++ to Objective-C++ was fairly simple as I knew most of the syntax already and just needed to learn Apple’s frameworks. I began making tweaks (like VAssistant, my unreleased Siri clone for iOS 5, or VolumeCustomize).
Question #2: If you could do one thing over again in terms of programming and developing what would it be?
I would probably have tried searching for developing on-device rather than trying to find a tool-chain for developing on Linux or Windows back in 2011, as I could’ve found the existing iOS 3 on-device toolchain earlier so I could’ve joined Cydia development a year earlier than I had.
Question #3: What is your advice for people who want to get into developing?
I recommend starting with the simpler high-level languages (like python or Visual Basic) before coming to the lower level languages. I didn’t start directly with Objective-C and when I came to Objective-C, I already had some experience with other languages. With languages like python or Visual Basic, there’s a lot of abstraction done for you (like memory management) which helps people just starting to acquire skills one at a time.
Question #4: Where do you see jailbreaking in the future?
Although I can’t comment on any upcoming iOS 8.3 or 8.4 jailbreaks, I’m fairly optimistic towards to the future of jailbreaking. Hopefully soon more people will be able to retain their existing firmwares and will stay in the jailbreak community (I’m working on some iOS Recovery Utilities so these situations where people are forced to upgrade due to issues are gone). However, I’d be really glad if Apple were to loosen up iOS a bit more like traditional desktop computers (they could use an option in settings like they have with Gatekeeper on OS X, or they could ship an alternate “unlocked” firmware that has no support and requires wiping the device to install). This would benefit both Apple and the users as Apple still won’t have to support people who modify their iPhones until they go back to the normal firmware but would make life easier for people who like having the jailbroken iOS experience.
Question #5: What is your inspiration for porting everything to the “Classic” style.
I originally started with the Classic tweaks shortly after I upgraded my iPod 5 to iOS 7. It lagged pretty badly (and I didn’t really like that new iOS 7 look much) so I started bringing back iOS 6 elements. However, later on, iOS 7.1 fixed the lag and I found a modern theme that was nice but liked some of the iOS 6 aspects, so I started adding modern modes to my tweaks. Currently, however, I have no further plans to port more iOS 6 elements. ClassicFolders (and ClassicSwitcher 3 if that comes out) will most likely be the last tweaks of mine to feature classic modes. I think it’s time to start looking forward now that the classic elements I really wanted are already back and fit in with the modern look.
Question #6: What are your reservations for releasing ClassicSwitcher?
ClassicSwitcher was originally made by Thomas Finch. However, in June, 2014 he dropped the tweak. I took the tweak up and offered free updates on iOS 7.1. However, on iOS 8 I felt like I needed to charge as it needed to be mostly rewritten to support iOS 8. However, the Bigboss repo and I had a communication issue and the tweak was released as a free update for iOS 8 rather than a paid one as planned. Hence, I had to drop the public release of the tweak. However, I liked the tweak itself so I kept updating it, albeit privately as most people said they’d pirate it because they “thought it should be free.” However, I’d rather not release than release and see almost everyone pirate it, hence I didn’t release ClassicSwitcher 3.
Question #7: What inspired you to make Anemone?
When iOS 7 was released, most aspects of WinterBoard that worked under iOS 6 was broken. Saurik took a while to update it for iOS 7 & arm64 and many people tried recompiling it for arm64 before him, but the source code was such a mess so no one was able to. Fast forward to 2014, iOS 8 was released. WinterBoard still didn’t support car files (introduced in iOS 7) and there were a clutter of tweaks to “fix” winterboard functionality. I originally started by merging all the “fix” tweaks into 1 package “ThemeLib.” I added car support to ThemeLib, and then thought I could do better than WinterBoard performance and functionality-wise, so I decided to give it a try. And of course, we now have Anemone :)
Question #8: Do you plan on releasing it on a default repo?
Yes, we plan on releasing Anemone on BigBoss when it’s ready for public use.
Question #9: What makes a good beta tester?
A good beta tester doesn’t leak, and uses the product enough to be able to find bugs in a timely fashion. A good beta tester would also be knowledgable enough to know how to send crash logs and syslogs whenever a crash occurs.
Question #10: What is the most challenging part of developing for Cydia?
The most challenging part of developing Cydia tweaks is doing the research to know which part of Apple’s code to modify. Sometimes this is fairly easy, but other times it can be very difficult (such as ClassicFolders, which took me about a year to reverse-engineer Apple’s folder methods and rewrite to get ClassicFolders working properly).