To gather insights for DZone's Native Mobile App Development Research Guide, scheduled for release in February, 2016, we spoke to 18 executives who are developing mobile applications in their own company or helping clients do so.
Here's who we spoke to:
Dan Bricklin, CTO, Alpha Software | Adam Fingerman, Co-Founder and Chief Experience Officer, ArcTouch | Nishant Patel, CTO and Kurt Collins, Director of Technology Evangelism, Built.io | Tyson Whitten, API Management Product Marketing, CA Technologies | Rajiv Taori, VP Product Management Mobile Platforms Group, Citrix | Zach Slayton, VP Digital Technology Solutions, Collaborative Consulting | Brad Bush, COO, Dialexa | Craig Lurey, CTO and Co-Founder, Keeper Security | Jessica Rusin, Senior Director of Development, MobileDay | Steven Jovanelly, Senior Director, Innovation Lab, PGi | Brandon Satrom, GM Developer Platforms and Tools, Progress Software | Eddie de Guia, Co-Founder and Managing Director, PubNative | Hans Ashlock, Technical Marketing Manager, Qualisystems | Mark Kirstein, Senior Director of Enterprise Software, RhoMobile | Justin Bougher, Vice President of Product, SiteSpect | Carla Borsoi, Software Product Manager and Marketing Lead, 6SensorLabs | Lubos Parobek, VP of Products, Sauce Labs
We asked these executives, "What do developers need to keep in mind with regards to native mobile application development?"
Here's what they said:
- Focus on one platform. Keep your ideas as simple as possible. Take advantage of upcoming hardware and operating system changes. Hardware providers release early versions to developers. Be ready. Anticipate and have things in your back pocket.
- Flexibility is key. Stay up to date with what’s happening. Design moves very quickly. Collaborate with engineers and designers. Be aware of other data sources to reduce your workload. Have the skills to manage yourself.
- Learn the platform deeply. Know how it is supposed to be used and how it can be used. Be creative when thinking about the user experience (UX).
- Never sit still and think the technology is going to stay the same for 10 years - it’s not. Pay attention to the trends and the tools. Tools are changing every six months. Understand how the consumer is using your application - what’s working for them and what isn’t. Think about how analytics will work. Machine learning and IoT are the future. You’re going to have the ability to solve problems that have never been solved before.
- Don’t reinvent the wheel. Use the tools in the platforms you enjoy. Evaluate and choose what doesn’t tie you in but enables you to develop apps and focus on what you love.
- Think about how you’ll eventually monetize your app. A lot of partners initially thought they had this great idea and would build it assuming it would make it to the top. The reality is that it takes a lot of money and time. Sure, there are exceptions, but they are exceptions for a reason. So to ride out the wave, think about how you will eventually monetize it. Advertising is a good business model because it allows you to monetize all users, or those that would not monetize otherwise. In this case, native advertising is a great option to conserve a good UX. However there are other options available: lead generation, referrals, etc.
- Maintain consistency across platforms and tight integration with other devices. Think outside of the box. Develop a core set of capabilities and languages. Coding is becoming a commodity. As computer programming becomes more core, look at how people solve problems and create applications to solve big picture problems. Figure out how to simplify the user interface to make it more interactive. Watch how people interact with devices and each other.
- Stay up on new technologies. Swift is a new language for programming native apps. Keep up with the new phones and their operating systems and capabilities. Keep up with new platforms, like Apple TV and Echo, as well.
- Technology is changing rapidly. Stay on top of Apple, Google and Samsung. Be aware of the design side of things. Know the best practices of UX. Designers need to understand development and developers need to understand design.
- Technology moves fast. Don’t get tied to anything specific as you will have to refactor and rewrite. Keep in mind the constraints of mobile. Mobile blends the personal assistant with the business world so security becomes more important.
- Go native whenever possible. The benefits of other platforms are not what they say. Why mess with non-native if you don’t have to?
- Stay flexible - be able to integrate. Don’t reinvent the wheel, leverage tools that are already in the marketplace. Know that when you’re finished building the app, you’re not through with it. Iterate and optimize based on user behavior. Test before going live and be open to iterating quickly based on what testing teaches you.
- Pay more attention to trends outside of mobile phones - IoT, Oculus, Hololens. Mobile interfaces are expanding. Know where the world is moving - pay attention. Look at opportunities to reuse the skills you have today - you’ll have a shallower learning curve.
- Few developers can work in both platforms. Choose the platform you are most passionate about and become an expert. Develop design skills for UI and CX. Be comfortable with, and see the value in, writing your own tests.
- Keep current with what’s going on. Use beta versions of platforms. Stay current on learning by using Codeschool or Coursera. There are plenty of resources and people doing good stuff.
- Make sure you design in a way that you’re able to iterate easily. Make it easy to make changes and adapt. Quickly respond to user feedback and adapt. User expectations change. Be flexible, build flexible. Adopt rapid prototyping and get out and test your apps.
What else do you think developers need to keep in mind regarding native mobile application development?