There are more than 19 million app developers in the world today. App development has become so incredibly simple, that people from all academic backgrounds are rushing into this field. So how can you keep yourself relevant? How can you stay ahead of the crowd? Sure your experience matters. But the rate at which technology is rising, the gap between newbies and veterans is closing in.
The key here is to leverage technology itself to your advantage. Imagine the value you can add to a project by fusing in your app development experience with the latest trends in technology. Super exciting!
Here are 5 free tools you can easily pick up to take your app development skills to a whole new level.
1] Figma (High Fidelity Design & Prototyping)
“A design tool? For app development? Seriously?” - was what every app developer ever said.
My answer is simple. How many times have you been asked to re-design or make changes to your app after completion. Irritating isn’t it? What if I tell you that all of this can be easily avoided.
The key is to give your client (or product owner) a glimpse of what the end product will feel like before starting development. In the design world, we call this a wireframe.
The Tool: Figma is a beautiful designing & prototyping tool which can help you do this. It is so intuitive that it will take merely a day to get used to it. You can build your design by just dragging and dropping components around. Converting your design to a live prototype is equally simple.
The Benefit: You might think this process will make the entire cycle longer. You’ve got an extra piece of work to do after all. But in reality it’s the opposite. Building a prototype takes merely a couple of days. The insights it generates though, is invaluable. Your entire team and client can discover the flaws in the workflow immediately. Improvements can be made there itself. Thiswill save a lot of time later on. Cause now you’ll be working on something which will get accepted for sure.
2] React / React Native (Frontend Framework)
Yes I am mentioning this framework at the risk of waging a war (please don’t hurt me). Without getting into the pros and cons of various other frameworks, let me tell you why I chose React to be a part of this list.
The Benefit: So why React over Angular, Vue or any other framework? React works cross platform. I’m not talking about cross platform in the traditional sense. You can build any kind of apps with React.
With it you can build Progressive Web Apps (with React) and Native Android & IOS Apps (with React Native). Heck, it can also build Universal Apps (with Next.js). That’s one single tool for everything. That increases your app development efficiency multifold. How incredible is that?
I can bet you. Try react once, and you’ll never want to switch to any other frontend framework.
3] Space Cloud (Backend as a Service)
We all know that an app isn’t of much use without a fully functional backend. But what if you don’t need to build a backend at all? What if you could control your backend directly from the frontend itself. This is precisely the idea of a Backend as a Service.
I have an interesting post which talks about frontend, backend and a backend as a service (BaaS) in more detail.
The Tool: Space Cloud is a cloud agnostic BaaS, which plugs into most of the popular databases out there. It provides a executable binary which can run on any cloud infrastructure. It exposes simple to use Rest APIs which can be consumed by the frontend. The best part. It is complete free to start of with.
The Benefit: The biggest benefit is that you don’t need to write any backend code whatsoever. Security (Authentication & Authorization) works out of the box. It can work with the existing database without having to migrate any data as well
“This can’t help me build sophisticated apps” you say? Well you can add your own custom code to extend the platform to suit your needs. Only write the tricky parts, the rest is automated.
Here’s a quick 5 min tutorial to help you get started.
4] MongoDB (Database)
Im potentially starting two wars in the same post. Things are beginning to get intense in here.
Sure MongoDB is not the database to meet all your requirements. But it is one of the most general purpose database out there. It can help you out with most of your storage requirements.
The Tool: MongoDB is a document type of NoSQL database. Its completely schemaless which is both, a pro and con. You don’t even need to create a table to get started with. Just start pushing your data to the database. Everything else is taken care of by Mongo.
Benefit: Incredibly fast to get started with. Performing simple CRUD operations is very straight forward. No need to learn SQL or any of that jazz. If you’re an app developer, Mongo feels like home.
MongoDB is also very scalable. There is a huge welcoming community which can help you get started in no time. No wonder why it’s one of the most popular databases for app development.
But I must add that Mongo isn’t the best fit for all kind of applications. For highly relational data, you’re better off using MySQL or a graph database.
5] Digital Ocean (Cloud Vendor)
The app development cycle doesn’t end with finishing the app. You also need to deploy it. The question is where?
There are a bunch of options available in the market today including the three giants (Google Cloud Platform, AWS and Microsoft Azure). But Digital Ocean (DO) is by far a more cost effective alternative to all of them.
The Tool: I like to refer to cloud infrastructure as a tool. Specially since, in today’s time, you can literally code out your infrastructure. Digital Ocean is a developer friendly VPS service provider. It brands itself as the “The simplest cloud platform for developers & teams”.
Benefit: VPS providers are generally a cheaper alternative than a full fledged cloud provider. That’s the biggest advantage. DO, unlike other VPS providers offers some neat features like block and object storage. These managed services save a lot of app development time.
A guess what, Digital Ocean has now announced that it will be supporting Kubernetes. A feat, which no other VPS provider has ever reached.
6] Bonus - Kubernetes (Deployment)
Well I was wrong. DO does let you “deploy” applications. It allows you to host them. You still need to manage failures and scale. Wouldn’t it be amazing if all that was magically taken care off?
The Tool: In comes Kubernetes. It’s a container orchestration tool. In simple english, it actually runs our backend code and database for you. It will automatically manage scale and handle failures. If a container fails, it will restart it. If a node fails, it will run the failed containers on available nodes. How cool is that?
Benefit: What’s the benefit you ask? Deploy and forget. If running on an auto-resize cluster (DO doesn’t support this yet), you don’t need to worry about anything. Assuming there are no updates or new features in your app, kubernetes eliminates the need of an operations team.
It is pretty clear that kubernetes is an amazing tool which you must consider adopting. It won’t solve all your DevOps needs but does take care of a considerable chunk.
So that’s the list of the tools you absolutely need in 2018 for app development. I know, it’s not an exhaustive list. But it will help you boost productivity and set you apart from the competition.
Comment below the tools you use to make apps. I’d love to hear that. If you found this post useful, feel free to like and share. That would help me a lot. You can always reach out to me. Let me know what you want me to write about. Cheers!