It’s hard to believe that the iPhone hasn’t even been around for a decade yet. It first arrived on the scene in June of 2007, and has completely changed the way the world operates.
With the iPhone came the arrival of iOS. This operating system is now employed on a variety of products, including iPads and iPods. With a new release of iOS expected almost every year, there are a few challenges that developers are having to contend with. In this post I’m going to take you through 15 of the most common ones you can expect to tackle as an iOS developer.
Apple certainly makes it easier to contend with compatibility than Android does. It’s still a big issue though. Which versions of iOS will your application support? The benefit to supporting more versions is a wider audience. Supporting fewer versions usually means less headaches and lower costs. Here are a few tools you can use to test and deploy your app on multiple iOS versions.
System Limitations with Storage and Memory
Even if you decide to develop for just one version of iOS, there are a variety of devices that run that version, all with varying degrees of storage and memory. Some major iOS games are several gigabytes in size now, and require monster amounts of memory. Even phones two generations old that may run the latest iOS won’t run the game. You’ll need to be very careful about what your application demands if you want to reach the widest audience.
Performance and Battery Consumption
The biggest complaint from smartphone users is about their battery life. If your app sucks up the battery, people will uninstall it, even if it’s a good app. You need to ensure that your app runs well in the background, and doesn’t use unnecessary processes that suck battery life. This is easier said than done. Optimizing an app is no easy task. Many major companies have issues – even Google – with ensuring their apps are battery-friendly. Expect this to be an ongoing battle. In some cases you’ll need to invent new processes for handling old tasks.
This won’t be a concern for every developer, but if your app involves pulling rich media in from the internet (video app, streaming service, etc.) you’ll need to pay very close attention to mobile broadband reports. Netflix is probably the most famous recent example that chose to throttle video quality to help people cope with data demands. You’ll want to keep in mind the data consumption your app requires, and optimize accordingly.
Apple’s App Store Approval Process
With 1.4 million apps in the app store, you’re not the first to go through this process. It’s not getting any easier though. A simple Google search for app store rejection lists numerous ways you can avoid getting rejected. Many, many developers have had their app rejected for a simple rule violation. These requirements change frequently, so you’ll want to make sure you’re familiar with the latest updates. The process can be frustrating, so you’ll want to research how others have dealt with similar problems.
User Experience Design
Design and fashion change frequently – and this will affect your app. Even looking at the most popular iOS apps for students, shows the varying degree of user design that exists. The apps have evolved significantly since their release. Your app will need to evolve as well. Material design, anthropomorphic design, flat design – do you know which is the current style? Here’s a primer.
Apple Watch and VR Connectivity
This is a relative new question developers are having to answer. How will your app interact with the Apple Watch, if at all? There’s a whole new world of wearables and virtual reality devices popping up on the market. Will your app take advantages of these trends, or be left behind? There’s always a chance the technology doesn’t catch on. You don’t want to pump money into a failing platform. It’s a gamble, and one that could payoff or crush your app.
You can thank Edward Snowden for this little gem. Encryption is the buzzword of tech circles for the foreseeable future. With hackers and the government building more sophisticated tools to snatch up user’s data, how will your app protect them? Will standard iPhone encryption be enough – or do you need to build a more robust solution. Encryption is only going to be more important as the years roll by, so developers will want to ensure their apps are doing everything they can to avoid being the ones that are embarrassed by yet another headline hack.
Tying Yourself to iOS
Another solid question that can be a lot more difficult to answer than you think. Developing for two platforms can be a major expense. If you thought compatibility issues were an issue for iOS, wait until you get started on all the varying hardware and screen sizes for Android. The benefit to tying yourself to iOS is that it’s a self-contained eco-system that has arguably better support for its developers. The big negative is that the majority of smartphone users are on Android. That’s a huge chunk of audience. Recently Beme went from iOS to Android. It took almost a year, but by adding android, they added hundreds of thousands of users.
Cross Platform Apps
Many companies aren’t just looking at Android and iOS – they’re hitting Linux, Mac, Windows and just about anything they can get their hands on. Users love an app they can sync on all their computers, phones, and tablets. Having all of their documents, lists, videos – or whatever your app does – available on all devices is a very good user feature.
Getting the Word Out
Kickstarter, Reddit, app stores, TechCrunch, review sites – there are thousands of ways to promote your app. The main thing to remember is not to rush it. Beta test. Work out the bugs. Once the word is out, you may only get one chance to captivate users. Once you’re ready, here are 25 free ways to promote your app.
Crap App Copycats
The crap app crisis is real. You make a cool app like Flappy Bird, and the next thing you know there are a hundred variants of flappy everything. The game mechanics, graphics and style will all be copied the second you get remotely popular. Don’t let this get you down, just make sure there are ways you can stay ahead of the curve. Add new levels, adapt the story, put out sequels, and foster the user base. If you leave them to fend for themselves and leave them hanging, the crap apps will swallow them up. If it’s a productivity app, constantly developing new features will go a long way.
Will your app sync with the cloud? If so, you need to consider all the previous points about network speed, security and performance. You’ll also need all the hardware and servers that goes with cloud syncing – and the security that goes with them! Use Amazon’s storage system (or other providers) to help control scale and costs at the start. Many major companies do this to help with the scalability issue that can pop up from unknown demand.
Futureproofing Your App
This is a tough one. If you’re lucky, Apple will let you know about the cool new things in the next iOS version well before it launches. What about 2 or 3 years down the road? It’s almost impossible to future-proof. There’s simply too much that can change. It’s entirely unpredictable. The best way to futureproof is to have a solid development and revue cycle. Apps that get stuck in the past, are generally left there. You need to be able to adapt and change. Set regular meetings with your team (or yourself) which focus solely on the future.
iOS introduced the split screen, will it affect you? If you’re lucky, it won’t. If you’re building a game you can generally just cross it off your list. Most other apps will need to at least consider how your users will use the app alongside other apps. It’s not complicated, but it does raise some interesting user experience possibilities you need to think about. This will also likely evolve over the coming versions as well. You’ll want to stay up to date on Apple’s best practices for split screen development.
If you’re thinking about becoming an iOS developer, it’s important you stay abreast of the latest developments in the field by following blogs such as this one, engaging with influencers in the field through Twitter or LinkedIn and contributing to the community by sharing your own learnings. Being on the cutting edge through reading, engagement and community is the easiest way to be prepared for any future challenges that pop up and avoid any nasty surprises.
Let us know your experiences in the comments below!