Incipia blog
Converting to Swift 3 – Lessons Learned
We are currently in the middle of converting the codebase of a medium-sized project, Gone, to Swift 3, and we knew that it wasn't going to be a trivial process. Thus far we've spent about ten hours, and I would estimate that we're about halfway done. The work required has taught our team a couple of valuable lessons that are worth pointing out:
- The project architecture of Gone had a large part in increasing the likelihood of its survival during the conversion process. For example, Gone uses many
NSOperation
subclasses for executing pieces of work that occur in more than one place, like displaying a modal view of a task. The fact that the code for displaying a modal task is only written in oneNSOperation
subclass means that there is only one place to convert that code to Swift 3. Clean code may take more time to write, but we have found that it lends itself to a variety of scenarios, leaving the stakeholders grateful when it counts. - Even if the client doesn't prioritize future-proofing related work over adding new features, it's up to the development agency to effectively communicate that it's in their best interest, as the project's survival may depend on how well it is positioned to handle some form of an overhaul, like converting to Swift 3.
- Our team is grateful that we didn't get trigger-happy with third party frameworks since they need to be updated to Swift 3, too (excluding Objective-C frameworks) – obviously this is out of our control, unless we're willing to fork whatever repo necessary and convert them to Swift 3 ourselves.
- In taking time to think about the fastest way to fix a multitude of errors that can easily be grouped together, we have learned a fair number of useful shortcuts, such as
cmd+alt+shift+F
, which is "Find and Replace all in Workspace". Being comfortable with shortcuts (in any IDE) will save a lot of time.
That's all for now folks! Be sure to bookmark our blog, sign up to our email newsletter for new post updates and reach out if you're interested in working with us.
Incipia is a mobile app development and marketing agency that builds and markets apps for companies, with a specialty in high-quality code architecture and keyword-based marketing optimizations. For blog/video or speaking requests, business or press inquiries please contact us or send an inquiry to hello@incipia.co.
Categories
Tags:
- A/B testing
- adjust
- advertising
- adwords
- agile
- analytics
- android development
- app analytics
- app annie
- app development
- app marketing
- app promotion
- app review
- app store
- app store algorithm update
- app store optimization
- app store search ads
- appboy
- apple
- apple search ads
- appsee
- appsflyer
- apptamin
- apptweak
- aso
- aso tools
- attribution
- client management
- coming soon
- design
- development
- facebook ads
- firebase
- google play
- google play algorithm update
- google play aso
- google play console
- google play optimization
- google play store
- google play store aso
- google play store optimization
- google uac
- google universal campaigns
- idfa
- ios
- ios 11
- ios 11 aso
- ios 14
- ios development
- iot
- itunes connect
- limit ad tracking
- ltv
- mobiel marketing
- mobile action
- mobile analytics
- mobile marketing
- monetization
- mvp
- play store
- promoted iap
- promoted in app purchases
- push notifications
- SDKs
- search ads
- SEO
- skadnetwork
- splitmetrics
- startups
- swift
- tiktok
- uac
- universal app campaigns
- universal campaigns
- user retention
- ux
- ux design