Android Basics: Data Storage
Below are the top discussions from Reddit that mention this online Udacity course.
In this course, you'll learn the basics of data storage in Android, building your first database and an app that could be used for any small business.
Reddacity may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Udacity. Thank you for using these buttons to support Reddacity.
Reddit Posts and Comments
0 posts • 14 mentions • top 5 shown below
638 points • jeremytodd1
After 2 months of learning programming I just released my first app. This is how I did it all for free.
2 months ago I moved to a new city with no job lined up. I decided that I'm going to give Android development a shot since it was something I've always thought it would be a fun thing to get into. I didn't know any programming at all.
I never gave programming a try before because I always thought things like "I'm not good enough at math for programming." or "Programming seems like it'd be really boring.". But I have to say, once I started getting into it, it's not so bad. You really don't need to know much math, honestly. And there is nothing boring about it. It's very satisfying to see code that you wrote come to life.
I hope this post helps people that are thinking about getting into development.
Here is a bit of a rundown on what I did to learn.
Learning Java
How did I learn Java? (And I'm saying that in a loose sense. I have a long ways to go to really fully understand Java. I have a lot to learn yet).
- This was a tremendous tutorial. It walks you through the very basics (including how to set everything up) and even has ways to check your work. It also does a good job at teaching you how to properly write the code using functions and classes.
- This site was also helpful learning the syntax of Java... but not much more than that. The problem I had with Codecademy was that it pretty much hand feeds you the answers, so you really don't have to think about what you're doing. I found myself having to just choose to not look at their code example so I would have to actually think up the answer by myself. Still, I would recommend going through it just to get a feel on java.
Making little programs
- After having a basic grasp on java I just started making these random obvious programs. A good example is a number guessing game. This is a very common beginning program and you can find countless tutorials to help walk you through this. You can find more examples like this just by googling "beginner java program tutorial"
Just a bit of advice, if you follow a web tutorial or even a youtube video, just make sure you don't just type the code in without thinking about it. You need to understand what you're typing otherwise whats the point? I found myself pausing the video countless times just to do a bit of googling on a certain line of code that I wasn't familiar with.
Learning Android Development
Once I sort of understood Java, I started looking for resources to help learn Android Studio.
I started with finding tutorial videos of people making a program and following along with them. The problem I had with a lot of the videos though is that even if it was a video aimed at beginners, they would tend to throw one or two things in that you had no idea what they were for. They would type that bit of code and barely even mention it, leaving you lost. I believe youtube videos have their place, but I would recommend them after learning a bit about Android Studio as you'll get a lot more out of the videos that way.
The most helpful tutorial series by far I found was...
Udacity's Android Basics Lesson
This was exactly what I needed. They do an amazing job at visualizing everything for you, and they actually explain what they're doing and why they're doing it. It's a little bit overwhelming once you get a few lessons in but just make sure you're slowing down a bit if you start to not understand things. The lessons also include (pretty basic) quizzes that do a good job at making sure you're keeping up.
They have several sections in the lesson, all of which I would strongly recommended going through:
Just by doing
Once you are somewhat familiar with Android Studio, just start making random apps. Again, the number guessing game is a good one, but this time you can make a nice user interface for it. Maybe even figure out a way to do a high score list. Even if you know the app is pretty lame, do it anyway. It's for learning, so who cares if it's actually an app anyone will use.
My App
First off, I'm not going to say the name of my app unless I get a decent number of people asking for the name. I don't want this post to seem like I'm just trying to advertise my app in any kind of way. I just want to show people that getting into this stuff really isn't too hard.
I always read that you should make an app that you would use. I didn't do that. Instead I made something that my girlfriend would use. She likes wine, but she has a hard time remembering the different kinds of wines that she gets. I decided my first try at an app would be a way to keep track of wines.
My app is just a quick and easy way to add wines to a list to look back to. You can take a picture of the wine, put in a description, price, where you bought it, a rating, etc. You can then sort the list of wines by name, price, rating, etc. You can also recommend a wine to a friend and it'll send them the details about that wine, including the picture you took.
The app is not the most in depth app out there. It's pretty basic, and I know that. But in 2 months I released an app that I'm happy with. I'm proud of it. The app has a whopping 6 downloads right now (and it's pretty much all people I've personally recommended it to) but it's very satisfying knowing that I made an app that people can actually get from the Play Store.
I went through a couple of versions of the app. The first version that I was happy with I actually had to scrap because I didn't have it save any of the data onto the phone, and to implement that I pretty much had to rewrite the whole thing.
My one tip with making an app (and programming in general) is just to break it down in small steps. Honestly, the smaller the better. If you don't break down what you're trying to do, you're going to have a bad time.
TLDR: If you've been thinking about getting into programming or Android Development but keep putting it off for whatever reason, it's not so bad. I was personally worried that I'm not good enough at math to do programming...Turns out you really don't need that much math for programming (at least for what I've done so far). There are also countless tutorials to help get you started. It's very satisfying to see an app you made work on people's phones.
12 points • octarino
>In this course, you will learn about the importance of data persistence when building an Android app. We'll introduce you to the fundamentals of SQL, the programming language needed to interact with an SQLite relational database. SQLite is a commonly used method to store large sets of data locally on an Android device.
63 points • SpaceImg
[DEV] APOD - easily Browse Thousands Of Space Images Provided By NASA's Astronomy Picture Of The Day Service. this is my first app. I've also included a Writeup/sources/My Experience for anyone interested in developing their own Android apps. AMA
Hi everyone, I'm excited to share my first app, APOD - Easily Browse Thousands Of Space Images Provided By NASA's Astronomy Picture Of The Day Service. It may not look like much, but I definitely learned a lot while developing it. The reason I built this app was because I have a love for space; when you build something you love, you're much more dedicated to finishing it. It's my first app, so I imagine you'll find bugs :). If you find any or have any improvement suggestions please let me know!
Sharing my first app is awesome and all, but I really hope to make this post more informational so that maybe it will push some of you over the edge and into Android development. I plan to structure it with basic tutorial/information at the bottom, and then will update this post with your general questions and answers, so please ask all the questions you have! I'm not a professional developer by any means, but hopefully I, or someone else can help.
A bit of warning ahead of time, I'm not a good writer, so you'll probably find a lot of typos, repetitive words, sentences that make no sense, or formatting that just plain sucks.
About me
I graduated from college in August 2013 with a bachelors in Operations & Information Systems. I always had an interest in general developing but had absolutely no clue where to start. What the hell are all these languages? How can I create this or accomplish this? Sound familiar?
Why I got into development
As a kid I always had a life goal of working for myself, or having a really high paying job :). I know what you're thinking, this sounds cliche as fuck..lol. However, my reason behind it wasn't for myself, it was for my future kids/family. While growing I didn't have much. I shared my bedroom with two other brothers, wore hand-me-downs to school, went on little to no vacations, and to make matters worse, I attended school in a wealthier town (because we lived on the outskirts). Anyways, long story short, I know my parents tried their hardest and I thank them every day, but truth is I do not want my kids to grow up in that setting.
I landed my first role as a Business Analyst at a startup. After about a year I realized I had maxed out my position skillset and because it was a small startup, there were no positions to move into. So from that point on I knew I had to do something else. Sure I could find another job, but I still had that life goal of one day working for myself. So I stayed at that position for 2 more years until I finally left in January 2017. During those two years all I did was learn programming, save money, pay off my student loans, and had little to no social life. I'd leave for work at 7am and get home at 6pm, then code from 6pm - 1am. But don't let that scare you, I was on an accelerated timeline trying to learn as much as I could in as little time as possible. So why am I telling you this? Because, I hope it might inspire some of you who feel it's too late to learn. I had no knowledge of programming until I was 25. Enough with the boring shit... lets get to the resources!
What do I need for Developing Android Apps
For clarity, I'll keep this part simple. But I will absolutely answer, or try to answer any question(s) you may have. Almost all of my original tutorial links will point to Udacity. I am in no way affiliated with them, I just love their courses because they offer so much information for free. Since I am in a rush, I'll be updating this post with more useful information, so please check back soon! Some of the subcategories below will have an answer followed by links for tutorials.
What language(s) do I need to know?
If you want to develop native Android apps you'll need to have a basic understanding of [Java](https://en.wikipedia.org/wiki/Java_(programming_language), which is an Object-oriented programming language (OOP).
https://www.udacity.com/course/intro-to-java-programming--cs046
https://www.udemy.com/java-tutorial/
https://www.sololearn.com/Course/Java/
https://www.codecademy.com/learn/learn-java
Do I need a super ultra fast flux computer to create Android Apps?
Not when you're learning and have a physical device (take a look below). The tutorials and projects you'll be working on/creating will be small, so they won't take a long time to compile and build. I learned and developed on this shitbox until recently.
Do I need a physical Android device?
It depends.
I recommend a physical device because you'll free up system resources by not using the Android Emulator. Also, if you do not have an Intel processor, you'll need a physical device. Android Emulator only works on Intel processors.
Otherwise, if you have a decent computer with an Intel processor, feel free to use the Android Emulator.
Where can I learn how to build an Android app?
Awesome, so you've mastered the basics of Java and you're ready to build your first Android app. I completed the below courses and absolutely recommend them. Some may seem a bit challenging, but just be patient, It will definitely pay off!
https://www.udacity.com/course/android-development-for-beginners--ud837
https://www.udacity.com/course/android-basics-user-input--ud836
https://www.udacity.com/course/android-basics-multiscreen-apps--ud839
https://www.udacity.com/course/android-basics-networking--ud843
https://www.udacity.com/course/android-basics-data-storage--ud845
What to expect along the way?
Frustration, lots and lots of frustration. You'll spend hours debugging a problem and then realize it's all caused by one line of code. Don't let this get you down, just keep pushing yourself.
Also, you'll always feel like you're behind. Maybe you don't know this, or that, and think how everyone knows so much more than you. Don't do this! One of my favorite quotes of all time was from when I worked on The Odin Project.
Measure progress against yourself and don't compare yourself to others. Students often compare themselves against others who are further along in their coding journey or have more experience. This is a recipe for depression and frustration. Only compare yourself to your past self: has your ability and knowledge grown from where it was last week, month, or year? Then you are making progress.
I really apologize for becoming short towards the end, I've spent so much time talking that I'm actually in a rush now. I'll be back to edit this post with a lot more info, so PLEASE check back.
Thank you all so much!
Wow! Thanks everyone for the support and for checking out the app. I'll be updating this original post with more content soon!
3 points • GavinGT
https://stackoverflow.com/questions/5181294/how-to-create-xml-file-in-android
https://stackoverflow.com/questions/9869507/how-to-create-an-xml-using-xmlserializer-in-android-app
I've not used XMLSerializer, but I have used GSON (same thing but for JSON). I used GSON to convert my JSON into a String, and just stored the string in SharedPreferences. Then when I needed to retrieve the info, GSON converts it back:
https://github.com/google/gson
You also might be able to get away with just doing jSONObject.toString(), and then storing the result in SharedPreferences or in a separate file. Storing text to a file isn't that hard:
https://stackoverflow.com/questions/14376807/how-to-read-write-string-from-a-file-in-android
Also, I'm not sure about your specific needs, but a SQLite database is the preferred method for achieving persistent storage on Android:
https://www.udacity.com/course/android-basics-data-storage--ud845