Applications or what we call as ‘Apps’ have been revolutionary ,its THE reason we have been so attached to our mobile phones. Making our life’s easier and more fun and efficient being the purpose of these apps. Almost all the businesses have changed itself and have become more mobile friendly . With the mobile app industry expected to reach heights of over $ 100 billion in the next few years, more and more businesses are adding this technology to their repertoire. There’s a need to engage with consumers and having an app to do so improves the customer experience tenfold.
The dynamics of this technology has been changing now more than ever before . We wanted to know more about what the future hold for this technology – In conversation with us is Faisal Abid .
Faisal Abid is a Google Developer Expert software engineer, author, teacher and entrepreneur. From the hardcore server-side and database challenges to the the front-end issues, he loves solving problems and strives to create software that can make a difference. He is a programming language enthusiast and loves solving software engineering challenges across the stack.Currently, you can find Faisal working on mobile applications in Flutter, building services with Tensorflow and writing backends in Dart or Node.js
How do you think the programming is going to look like a few years from now?
In a lot of ways it’s going to be the same in terms of programming languages. There will be new problems to solve as there is now, but the ability to write and maintain complex applications will get easier. This means better tooling. If you look at what Dart or Typescript have done, the language is great, but the tooling makes writing applications in these languages much better.
With Machine Learning and AI coming in, what do you think are the testing challenges and how should up-skill themselves?
A lot of the testing challenges will be around how valid the data is that ML/AI apps are being trained on.
You need to make sure there are no biases and that the data is an accurate representation of what you are trying to achieve.
There are a lot of good courses in ML/AI like fast.ai and Andrew Ng’s Coursera course. Developers should be looking at these to get a better understanding of writing and testing ML/AI apps.
With so many architectural changes with Operating systems like Android & iOS, what are the challenges with the scalability of apps?
I actually think the challenges are going away. Both Android and iOS have learned a lot from previous generations of their products, and have built tooling and frameworks that make it easy for developers to build applications.
How do you think Machine learning and AI is going to help with coding?
I think what we will see in the next year or so is a whole new range of startups that will help you write, read, secure, and review code better. You’ll write fewer bugs and be able to develop faster and more complex applications this way.
In 2016 the estimated loss as a result of software bugs was 1.1 Trillion dollars. With that much money on the line, if we can get ML/AI to help us write better code, we can improve software and the economy.
What are the top challenges developing mobile apps?
If you look back to when Android and iOS were a lot simpler, think iOS 2 and Android 1.0, when you built an app, you had to ensure it worked for a small market size, along with a handful of devices.
Now if you develop an app, you have to make sure your app works for the global market, under not so favorable network conditions, on phones which could have very little memory or CPU, and with a bunch of different device densities and sizes.
What are some tools do you use to access the quality of the code?
CircleCI is a great tool that I consistently use to ensure all the tests pass before being merged into the Master.
Another great tool is CodeFactor.io, it performs automated code-reviews and helps when you catch mistakes when writing complex code.
Lastly I love the Jetbrain suite of products, the tooling makes a big difference to ensure you write good quality code.
What are your major testing challenges?
The major testing challenges depend on the platform.
For web and mobile, the major testing challenge is ensuring the UI works cross platform and is responsive across different devices. Writing unit tests for non-ui components is easy, but when when you are rapidly changing the UI, making sure those UI tests stay valid is a lot harder.
For AI/ML, its ensuring the data for training is correct and understanding the output of the algorithms are correct. It’s very easy to say “Well the ML/AI algorithm said X” but understanding why is the trick to building correct ML/AI algorithms.
What is your advice to startups should focus on to deliver solid quality apps?
Don’t focus on the global market, start small and focus on your more immediate market. I know you want to make sure your app runs on every device, but don’t bother with that.
Focus on the devices your potential user base might have.
Take a look at the most dominant devices in your country of choice and focus on those. Make sure the experience is rock solid on these devices for these users, then expand.
What’s your take on Flutter? Is it the next big thing.
As with any new technology, you have to approach it with some caution and understand what it truly is about. I’ve been working with Flutter for about 2 years now, and I think they have done a fantastic job in making an amazing technology.
I’ve worked at a few big companies on both iOS and Android products and one common issue we always faced was feature parity and lack of resources to develop on both platforms. Now with Flutter that problem goes away.
I urge the readers to take a look at Flutter, as well as other competing technologies and see what fits them the best.
I know almost anyone I’ve spoken too that has tried the alternatives, comes to Flutter and says “wow Flutter nailed it”.
I truly think Flutter is the missing link that we’ve been looking for, for cross-platform development.