Since Apple launched the Swift in 2015, the mobile programming language continues to evolve and grow. Between Swift 2 and Swift 5, the world has moved closer to a “mobile-first” environment – but what exactly has changed, and what can we expect in 2021? Karl Pfister, iOS Program Director at Devmountain, shares what’s in store moving forward in iOS development, and the two trends he predicts for 2021.
When Swift 2 was first released, it was still pretty unstable. Companies didn’t have a lot of confidence (for good reason) in Swift as a programming language. The first updates in Swift were all about building stability and confidence in the language. Later, Swift became really intelligent about garbage collection (the ability to discard unused memory). That type of intention with the Swift language is exciting for mobile developers.
Changes have been made to move away from C style functions into their own Swift style functions. Currently, Apple is working on changes to the async/await functions for multiple tasks working at the same time. That will mean more RAM in mobile devices with 5G network and will make Swift a faster language that allows developers to do more with less processing power.
Looking at the Tiobi index for Swift, in May 2020, Swift was the 11th most popular language with almost 3x as many votes as the year before. Objective C received only 50% of the votes that Swift got. The Objective C world has totally flipped from 3-4 years ago.
Swift's rise in popularity is thanks in part to the fact that it has been built to be a beginner-friendly language because it’s not written by someone 25 years ago; the language and intention behind it makes more sense.
The world started shifting to a mobile-first mindset 1-2 years ago. However, Apple very recently released the M1 Silicon Chip, which enables iOS developed mobile apps the ability to work on Mac computers without any port. We're now in a world where what's done on mobile translates immediately to desktop ecosystems.
The world changed when apps came about and we transitioned from programs to apps. Now apps are becoming interchangeable with programs and so we’re curious what that transition is going to look like, both for users and for developers. Mobile developers will be able to build for both desktop and mobile simultaneously.
This offers more synchronicity between devices, which is the direction the world has been going for years. The term "mobile-first" may change as the line between desktop and mobile is blurred.
Trend #1: We’ll see more machine learning + AI applications
Individuals are using their mobile devices for more of their life than they ever have – for shopping, home automation, and more. There's a huge opportunity for machine learning to make life easier for people.
New Year’s Resolution: If you already know Swift, focus on learning CoreML from Apple and Beacon technology in 2021.
Trend #2: We’ll use more Augmented Reality with AR Kit
When people think about Augmented Reality, they often think of Pokemon Go or an app to see what your room would look like with different furniture. By combining Machine Learning technology, AR Kit, and Beacon technology, you can imagine a world where you can walk into a store and your phone vibrates and says, "You're looking at this shirt – what will it look like on?" and then AR can put that on you. My opinion is that AR is not going to be as "gamified" as it currently is. I think it will become a part of everyday life.
New Year’s Resolution: If you already know Swift and some machine learning, then learn AR Kit in 2021.
While these frameworks are not currently part of Devmountain’s core Stack, we do encourage individuals to build their personal or group capstone using these frameworks and we'll help them learn it as part of the project.
Everything about normal daily lives has changed this year due to COVID-19. At the heart of that is our mobile devices; we connect with others using FaceTime and other communication channels, we escape into games and apps. Applications have impacted how we shop, buy groceries, and get takeout. The “app” as a tool has allowed new industries to emerge, centered in these mobile capabilities.
Initially, companies were concerned about expanding their teams due to the uncertainty of what their environments will look like. However, if Mobile App Download Trends predict anything, we'll soon see a "boom" of employment of mobile and iOS developers.
Generally, at Devmountain, more graduates are employed and their starting salaries are higher; however, it's taking longer to get hired. Now it's a 5-6 month lead up time to their first role.
With the transition of the world to fully remote, companies are rethinking how their teams are structured. Hiring managers want Senior developers to build their product, but since there are never enough Senior developers and the demand is so high, companies are reconsidering Junior developers. Today, we see a more linear path for someone just starting out at a Junior or Mid-level developer to find their first position, as companies have to meet the need/demand of consumers and train Junior developers to grow into Senior positions.
People are realizing that Juniors can do a lot more than they are given credit for. The tenacity you get from someone who is trying to make their mark in a brand new career field cannot be understated. It's been in the process for a few years, but it seems like the world is transitioning to be more welcoming to Junior developers, thanks in part, to COVID-19.
My personal opinion is that Objective C is completely worth learning because it is a language that will help you learn what happens behind the scenes. Since Swift does a lot of the memory management for us, learning Objective C offers more appreciation for what Swift can do for you as a developer.
On the other hand, Devmountain is currently working through that decision process of removing Objective C. It’s frustrating to many students because it’s less intuitive. And Stack overflow and Utah iOS/Mac communities are so Swift-focused that you don’t need to learn Objective C anymore to find resources and find support within the community. A year ago, it was really important to learn Objective C because you would be transferring legacy code into Swift, now majority companies are just using Swift from the start.
Swift wasn't designed to work off Objective C, Swift was designed to replace it. Things that don't make sense with Objective C just work in Swift. We don't even have to spend time thinking about those anymore.
Reddit is a fantastic resource for keeping up with developer trends, concepts, and news; r/Swift is great for those who are learning or are already experienced with Swift
The Apple developer website - Apple releases their intentions before they make big changes; they are forthcoming with that information to give an idea of what's coming down the line.
8 non-profit bootcamps with a mission to change tech!
How NexGenT helped Iris pivot into network engineering in 24 weeks!
Lighthouse Labs breaks down data viz tools: Matplotlib, Seaborn, and Plotly!