What have I learned from Udacity Android Developer Nanodegree program
The Android journey of mine has started 3 years ago by a need for mobile in my very first entrepreneurship trial. This year I took a huge step with Udacity Android Developer Nanodegree program program running with the participation of Google.
After 3 months GoogleDeveloperChallengeScholarship for Android track, I got the scholarship (do not miss the scholarship application). I have been trained for 9 months by a great community and mentors. All thanks go to Udacity, my Nanodegree code reviewers and mentors, Nanodegree colleagues.
There were a lot of detailed and structured lessons, code examples and assignment projects. I’m going to list the learnings from assignment projects in a nutshell. Surely, there is much more than the list. But at least, it could give you an idea about the Nanodegree program.
Project 1: Sandwich Club
- Design the layout for the detail activity so the different elements display in a sensible way. Implement the JSON parsing in JsonUtils so it produces a Sandwich Object that can be used to populate the UI that you designed.
- JSON data parsing without 3rd party libraries
- Designing an activity layout and populating JSON to the layout properly
Project 2–3: Popular Movies parts 1 and 2
- In this project, you will build an app to help users discover popular and recent movies. You will build a clean UI, sync to a server, and present information to the user.
- Fetching a data from a remote host via its REST interface (theMovieDB)
- Saving and restoring Instance state of an Activity
- Saving data by using SQLite
- Exposing the saved data via ContentProvider
- HTTP methods with OkHttp
- Working with URL, URI, URN
- Asynchronous calls
- Working with RecyclerView
- State pattern
- Template pattern
- Observer pattern
- Factory pattern
Project 4: Baking App
- You will create an app that will allow a user to select a recipe and see video-guided steps for how to complete it.
- Use MediaPlayer/Exoplayer to display videos.
- Homescreen widget
- Fragments and Master Detail Flow
- Espresso to test aspects of the UI.
- HTTP requests with RETROFIT
- GLIDE to show images
- State persistence and responsive design
Project 5: Build It Bigger
- In this project, you will use Gradle to build a joke-telling app, factoring functionality into libraries and flavors to keep the build simple. You’ll also configure a Google Cloud Endpoints development server to supply the jokes.
- Using a Java library
- Using an Android library
- Using a Google Cloud Endpoint solution
- Product flavors (free and paid flavors for this project)
- Writing a unit test
Project 6: Make Your App Material
- In this project, you will redesign an app to follow the Material Design guidelines and translate a set of static design mocks to a living and breathing app.
- Understand the fundamentals of Android design.
- Apply Material Design guidelines to an mobile application.
- Separate an interface into surfaces.
- Effectively use transitions and motion.
- Design Support library elements such as FloatingActionButton, AppBarLayout, SnackBar, CoordinatorLayout
- Customizing the Styles and Themes of app
Project 7–8: Capstone stages 1 and 2
- In the Capstone project, you will build an app of your own design in two stages.
- In Stage 1, you will design and plan the app, using a template that we provide in the “Instructions” node.
- In Stage 2, you will demonstrate the skills you’ve learned in your Nanodegree journey, and apply them to creating a unique app experience of your own.
- App includes support for accessibility. That includes content descriptions, navigation using a D-pad, and, if applicable, non-audio versions of audio cues.
- App keeps all strings in a strings.xml file and enables RTL layout switching on all layouts.
- App provides a widget to provide relevant information to the user on the home screen.
- Using Admob for Ad service
- Using Firebase for Analytics service
- Room Persistent library for SQLite abstraction
- ButterKnife for UI binding