I have an idea. Now what do I need to learn to make it happen?

This is probably a very big question but I’m not sure where to start and this place has been very helpful to me in the past!

I’d like to create an app which uses map/road, speed limit, local gas prices, and car model/year data to allow the user to find a list of destinations to which they could travel for ‘x amount of money’ or in ‘x amount of time’. I’d also like to include a simpler trip planning aspect if they already know the destination(s) which would calculate the cost of their already planned trip. The latter concept is one which I’ve seen before, but I haven’t been able to find the first service anywhere.

I’ve seen many of the features utilized elsewhere, so I figure they could be combined:

Does anyone know where the data could be obtained cheaply? Advice on how to use it? I think Gas Buddy’s prices might be user uploaded. If I’m counting on a large number of users, is there any other way to get that data?

To be honest, I’m not very experienced, but I have the time and ability to learn. I’ve just begun learning about Google’s APIs (heck, to be honest, I didn’t even know what an API was till fairly recently) and am wondering if that’s the direction I should go.

Anyway, thank you all for your time and any help you can offer!

Cracks Knuckles ALLRIGHT well first of all I think thats something I would definetly download if it was a real thing. But dreaming is the easy part, making it a reality is another story entirely.

Let me give you a little context before we even get into the development process. Foremost, you need to know your costs and potential profits to make those costs up. I’m assuming you would be making this yourself, so no labor costs. Software would also be pretty cheap, except for the potential server costs. Using Google Maps and the Gas Buddy api im sure would be pretty cheap if not free, most companies have no issues if you use data they make publicly available. That being said, keeping calculated data, and especailly user data, require a well designed and maintained database. Databases require servers to run on, which cost money. Im no expert on server costs, but anything roughly more than 500MB of data isnt going to be free, and anthing about a couple GB’s is going to have significant costs. But that wouldnt be an issue until you mabye had 1,000s of users.

Moving on there’s the costs of the app itself. Developing and publishing an app on the Play Store/App store isnt free. I havent looked in a while but im pretty sure it costs between $70-$100 to publish an app once it’s approved.

Theres also the option of marketing, but I’m definetly no expert on that so I would research it. You cannot disregard marketing though as what’s the point of making an app if nobody uses it?

Now that covers the business side in a nutshell. Development of the app itself is another issue altogether. User authentication alone requires knowledge of database configuration, server configuration, and user authentication/authorization. Cybersecurity actually isnt an issue as there are a lot of libraries out there like passport.js that take care of it for you. Working with API’s will require knowledge of asynchronous programming. Complex operations like this will require knowledge of a framework to organize it all like React or Angular. This can be simplified though with NodeJS as frameworks like Meteor, Feather.js, and Sails.js have come a long way.
Furthermore, if you’re making a mobile application, you need to make the decision of native vs non-native development, and how to tackle each approach. Native development is the higher quality of the two, but it’s also trickier. Android is typically developed in Java, whereas iOS is typically developed in Obj-C or now Swift. Alternatively, if you want to stick with Javascript things like React Native have native Javascript support for both operating systems, but they are quite new, more limited, and are bound to improve and thus change in the coming years. Non-native development is easier but is lower quality, think of it like a website as an application. Frameworks like Cordova help with this, but that’s outside my range of knowledge so look into it if you’re curious.

Lastly, there’s the design and planning of the application itself. Anybody can design content on a piece of paper, but making something people want to interact with requires quite a bit of work. Basic UI/UX knowledge will be necessary, so basic things like content heirarchy, color theory, typography, and reqponsive design will need to be thought out.

Development and design can be bought of course, but that’s a lot of money. And at the end of the day it could all still fail :smiley: . But that’s the life of the entrepenuer. There’s many ways to go about learning, but if you are looking for a place to start I would begin with the basics: HTML, CSS, JavaScript. Then learn the fundamentals of server and database coding, be it Node or Ruby or Apache, etc. Free Code Camp recommends you learn a front-end framework before learning server coding but after learning both I wished i knew how to use NodeJS before I learned React. Then before you learn a framework learn how data-modeling works. Learn why frameworks are necessary, and whether you even need one. Frameworks are deisgned to organize your codebase, to take the information from the database to the user in a simple fashion. Then learn to do full-stack development, which I recommend Meteor to help with that. But don’t learn meteor until you know whats under the hood. Meteor takes care of many things for you but can become a nightmare if theres a bug you cant fix if you dont understand the underlying technology. Once you know how to build things, learn how to build them right, and by that I mean learn design. Again you dont need to be a professional graphic artist but the fundamentals will do you wonders. I personally recommend reading Design For Hackers. It will transform the way you see the internet and how not just technology but everything around you is designed with a purpose. Finally, learn how to sell your ideas. Learn the fundamentals of the modile business. Every industry has its winners and losers. Don’t be a loser.

Now that may seem like a lot, but thats because it is. Welcome to the life of an app developer :stuck_out_tongue:

1 Like

Thank you very much for such a detailed response! It certainly does seem like a lot, but that’s what I expected. Even though I can tell some of that is just scratching the surface, it’s extremely helpful to even hear some of these terms, coming from the low level of experience that I am. I’ll look into all of this!

Thanks again!