I don’t have this challenge at Poodle Jumper, but many iOS developers have challenges with their company thinking mobile-first. Mobile-first design means you think about the smallest and simplest version of a feature first so that it will provide a good experience.
It is easy to design large complex screens for a computer, but mobile applications need to be simplified to be usable. This goes beyond the interface. It also includes thinking about how we design the integrations and how we leverage mobile capabilities to have features that aren’t possible with only a desktop computer.
Many design elements in mobile apps aren’t widely used in web experiences. I get to play with animation, transitions, sound, and haptic feedback (that little vibration you feel from your phone.) I love this aspect of mobile devices because it gives me easy ways to create delightful experiences.
Automated testing for mobile devices can be tricky because the tools used for website or other technology doesn’t work well with mobile apps. I’ve been working with Amanda (QA) to teach her how to use the automation tools in XCode, but I write a good amount of automation myself. This is different from web development, where QA engineers can automate most of those tests with ease.
The biggest challenge I face as an iOS engineer is also my greatest learning opportunity: keeping up with the new devices, operating system versions, programming language versions, and capabilities that change every year. If it sounds like a lot, that’s because it is.
Every spring, Apple hosts a World Wide Developer Conference (WWDC) where they announce the new operating system capabilities they’ve built. Anticipation and rumors build for months. WWDC is full of demos and training led by Apple’s employees who created the features, but it is not free.
Developers get early access to the new features, and we look forward to playing around with them every summer. In the fall, the new OS version is released to users along with a line of updated or new devices. We have to make sure we know the changes and test the app on the new OS before it goes live to users. Otherwise, the app could break for them.
This is probably overwhelming, but don’t let it scare you! You don’t need to know everything to get started. Apple provides a lot of resources, training, tools, documents, and even a developer community for us to support each other. You just need to learn how to read documentation, experiment, and try. With everything changing so rapidly, it creates a level playing field for people just starting out. Honestly, this constant state of change is what led me to become an iOS developer. I really love what I do!