• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

What should I consider before starting bigger project? Tips/tools/techniques etc.

horacy

Lurker
May 13, 2018
2
0
Hello, I'm planning to start a new bigger project for a leraning purpose. I have some knowledge about Android programming, but I still consider myself as a beginner.

I don't have a whole image of the new project, I expect I'll be adding new features on the fly, because I can't predict everything before I have a basic functionality.

So I came up with an idea of making a sport/activity tracking app. The app will be very similar to Strava/Endomondo with some additional features and will lack some of them. So I am going to use geolocation API and some cloud database. The users will have a possibility to share they achivevments etc. Maybe I'll add something like nearby events for runners etc.

But I want to do it in the right, proper way. What does it mean? I want to plan, consider as much as I can before implementing. So I'm asking you, what will you recommend me? I mean it can be anything. Maybe what database will be good for that? Or some handy design pattern, or some API's, libraries etc. Should I use REST? Even though I may not use all of it, but hey, I want to be aware if something exists, maybe I will use it in the future. Learning is good.

The only thing I am sure about is that I am going to use Kotlin instead of Java. I've never been doing anything with Kotlin, but it's my decision to learn it.

I expect some nice discussion. Thank you.
 
Hm, can I ask why you're choosing Kotlin? I wouldn't expect much discussion here if you choose that language. I myself am a Java fan, and I don't really have any desire to learn an alternative programming language for Android development, when Java does such a great job. I might get around to learning it at some point I guess.
There's also a huge amount of Java code examples on the web for Android. Not sure the same volume of readily available Kotlin code exists.

As to your project, it's a challenging one. You'll need a back end server component, to collect and manage the data from individual client apps. This will involve a database. In fact you might want to consider using Firebase, which is quite popular now. This also provides an app messaging/notification service, which it sounds like you'll need.

https://firebase.google.com/

As for the app design, you should think about the features you want to implement. The workflows, the screen designs. Try and sketch this out before you start. But it sounds like you're at the high level design stage. When you get the details in more focus, it would be good to come back here for more help if you need to. Also, don't neglect the testing aspect of your app. Develop unit tests as you go along, it saves time in the long run.
 
  • Like
Reactions: lunatic59
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones