TCO17 - A Battle for iOS Supremacy!
It’s WWDC week and Apple just did the WWDC17 keynote on Monday, therefore it’s most appropriate we show some iOS love on the TCO17 blog this week.
Over the years, I've had an opportunity to work with some of the top developers in the Topcoder community across some interesting projects - both as a copilot as well as a reviewer. While I’ve worked on projects across multiple technologies, I’d pick mobile and Salesforce development as my favorites any day.
And being a hardcore iOS developer and an Apple loyalist myself, it should be no surprise that I love iOS development over Android. In that sense, I consider myself fortunate to have worked with two of the best iOS developers I’ve come across in the Topcoder community - seriyvolk83 and N1k1tung
iOS Love on Topcoder
While I’d love to see an iPhone/ iPad app challenge launched on Topcoder every week, I think overall there’s been a good volume of iOS development over the years. I remember the time when it all started off with the ‘$500K Learn Swift Series’ and was followed up with the launch of a dedicated iOS community on Topcoder. I’ve been to WWDC three times and it was a pleasure blogging about my WWDC15 experience on the Topcoder blog.
And with Stage 4 of TCO17 kicking in, I am expecting a barrage of iOS challenges in the coming weeks (I promise to launch a few myself!)
The Battle for supremacy!
There’s always healthy competition on iOS challenges on Topcoder. I went back and looked at nearly the last 50 iOS challenges and a majority of them were won by either seriyvolk83 or N1k1tung - a statistic which speaks volumes about their skill and track record.
Therefore, it was no surprise that both these stalwarts made it to the TCO16 onsite finals. And with Stage 4 wide open, it should be an interesting quarter to see how they compete against rest of the competition for the remaining TCO17 finalist slots.
Know Them Better!
I reached out to both of them with a series of questions so the community would get to know them a bit better and for some advice to fellow iOS developers.
Q. Tell us a bit about yourself. How did you discover Topcoder? How did you get into iOS programming?
seriyvolk83: I was a Java developer for 6 years and my teammate told about Topcoder - all top developers compete there. I registered but started competing only a year after when I decided to move to mobile platforms. For a few years, I tried Java ME and even wrote a small game for my Nokia mobile phone. But mobile development was crude at that time, even Objective-C development, that it was more painful than exciting. When I started learning Swift, I was pleasantly surprised. It was like when you buy an iPhone right after an old Nokia 3310 and Topcoder pays you for using the new phone!
N1k1tung: I discovered Topcoder via a friend back in my data science days when I participated in school olympics in informatics. One day I received a newsletter telling me that Topcoder is launching a Swift challenges program - at the time I was already working as an iOS developer at an outsourcing company for a couple of years and had plenty experience in Objective-C, so I decided to try learning Swift with those challenges.
Q. I’ve had the good fortune of working with you on some amazing iOS projects (as a co-pilot and reviewer). Which is your most memorable iOS project on Topcoder & why? (need not involve me!)
seriyvolk83: It was the UNI (Compass) series of challenges. I still remember the first challenge of the series - it was the first complex app I’ve done. I didn’t even know how to implement it when was looking at the design. Most of my iOS skills were acquired during that challenge. I asked for extension twice, was implementing it piece-by-piece and was very excited when it successfully wrapped up.
N1k1tung: The most memorable is the first real project that I participated in - it was about building an access system using a credential app on user’s iPhone and iPods at check-in points with reader apps on them which would open the necessary door when a user with corresponding credential comes close.
Q. Objective-C or Swift or Bridging using the best of both worlds? Which language do you prefer to develop in and why?
seriyvolk83: Swift. Objective-C takes twice more time to code because of the syntax. When I first tried Objective-C, ARC was just introduced and I didn’t like manual memory management that was widely used. Now Swift is even faster than Objective-C, so I believe Apple made a good decision when they switched to Swift.
N1k1tung: I’m all for efficiency, so at this moment I can definitely vote for Swift, as it has made it through a long road to become more robust and also reduce the compiler/indexing issues during development. Swift is more efficient for development by nature: more stuff can be implied and then deduced by the compiler so you just need to write less code.
Obviously this natural effectiveness doesn’t come for free - Xcode does a lot of indexing as well as compiler works slower, so developing in pure Objective-C environment is noticeably faster. However as I’ve said initially, many optimizations occurred on both language and the IDE and thus currently indexing/compiling is much faster for Swift projects than it was before.
I’d say it’s the current way of progress - putting more work on the CPU.
As for bridging - generally if you can avoid it, avoid it. Swift and Objective-C frameworks have compatible API - both supply umbrella headers, and famous dependency helpers like CocoaPods support using frameworks, thus you should put your different language code in separate frameworks and don’t care about which language it’s written in. Of course there are corner cases when a large Objective-C project is incrementally converted to Swift, or some CocoaTouch library that wasn’t converted to Swift yet has to be used.
Q. What in your opinion is the best part of being an iOS developer?
seriyvolk83: The nice part is that you have to know all new iOS features in advance, when they are released. So, you always know what is new in the industry even without reading IT “articles”.
And I have to buy new iPhone every year!
N1k1tung: Mobile development is constantly staying on the top of technology. Having the largest enterprise support provides us with tools to easily leverage that - yesterday Apple announced CoreML and ARKit - new frameworks for incorporating machine learning and augmented reality. So compared to other fields it does feel like iOS developers can do more with less.
Q. You’ve been a TCO finalist in the past. What tips would you want to share for any new TCO finalists?
seriyvolk83: If you win a trip, go for it. I didn't use my TCO15 trip and I still regret it. If you are a finalist on two or more tracks, don’t compete onsite on all of them - it’s stressful. Instead, choose the best you are in.
Arrive on-time so you have free time for sightseeing!
N1k1tung: Strive for the best, don’t be afraid of trying and making mistakes. Have fun at the TCO as I believe this is the main goal of it!
And that’s a wrap!
The TCO17 development onsite finals promises to be a cracking contest - I wish these two iOS development stars stalwarts and everybody else competing good luck!