Skip to content
This repository has been archived by the owner on Jun 28, 2022. It is now read-only.

Latest commit

 

History

History
220 lines (143 loc) · 15.8 KB

File metadata and controls

220 lines (143 loc) · 15.8 KB

Webcast: About the Android Developer Nanodegree

Here is a link to the video

#What is Android Development? Android development is programming for Android devices, whether they are wearables, watches, phones, tables, TVs, or autos.

#What is the Android Developer Nanodegree about? The Nanodegree program is an intermediate program. It takes a student from learning the fundamentals of how programs run on Android devices, to refining their apps and bringing them to production quality. This includes how to make the apps able to run on multiple devices like wearables, phones, watches, TVs, or autos.

The Android Developer Nanodegree will provide a guided, efficient path for an intermediate developer with little or no experience on mobile platforms to emerge as an Android Developer.

By the end of the Nanodegree, you'll have a diverse portfolio of projects to show employers, and will even publish your own app on the Google Play Store as part of the Capstone project.

This is an Intermediate Nanodegree: Entering students are expected to have prior experience building applications (web or mobile) in Java or another object-oriented programming language.

####Why Take This Nanodegree?

With over 1 billion Android devices already activated, Android represents an incredible opportunity for developers. As Android continues to grow beyond smartphones, it will become the brains behind invisible, ubiquitous cloud-connected computing. The skills you learn in this Nanodegree will help you master the existing platform, and prepare you for the exciting opportunities in Android's future.

#Expected Prerequisite Knowledge ###What is Expected Prerequisite Knowledge to start the Android Developer Nanodegree? This will be a challenging and rewarding journey that will take a novice programmer 9 months or longer to complete, spending an estimated 10 hours per week on the coursework. Do you have the dedication and mindset to sustain you through it? If you're not sure, please check out the courses and projects, listed under Nanodegree Structure, before making this commitment.

####Programming Experience

This is not a "Zero to Hero" program. Entering students are expected to have prior experience building applications (web or mobile) in Java or another object-oriented programming language.

You should have at least 1-2 years of experience in Java or another object-oriented programming language prior to enrolling.

If you have no prior programming experience, we recommend you take our Android Development for Beginners course, also built with Google. You should also learn foundational Java programming concepts before enrolling in this Nanodegree. Our Intro to Java course may be a good place to start.

####Technical Skills and Requirements

You will submit your projects on GitHub, and must have a GitHub handle and know how to share code prior to enrolling. Take our course on How to Use Git and GitHub if you need to learn how to do this.

You will build your apps in Android Studio, and will need to install it on your machine to complete your Nanodegree projects. If you don't have Android Studio installed, see our mini-course on How to Install Android Studio for instructions.

####Dedication and Mindset

In addition to 1-2 years of prior programming experience and intermediate technical skills, students are expected to demonstrate the following characteristics:

  • Resourcefulness: Ability to search for and find solutions in documentation, backed by the belief that all problems in code are discoverable;
  • Grit: Ability to work through challenges and persevere when code breaks and tests fail.
  • Growth Mindset: Belief that intelligence is NOT a fixed entity, and can be boosted by hard work in the process of learning and practice.

###What gaps may need to be filled in from the Intro to Programming Nanodegree?

First, it's probably useful to go over what you will learn (or have learned) in the Intro to Programming Nanodegree:

#####What you learn in the Intro to Programming Nanodegree

#####From Stage 1: In Stage 1 of the Intro to Programming Nanodegree, you will learn the basics of HTML and CSS, as well as how they fit together. You'll get practice with developing your own static web pages, building the foundations with HTML and formatting them with CSS. You'll learn a variety of HTML tags and attributes, as well as how to use them.

You will also learn how to use various tools common in programming, like a text editor (we use Sublime Text).

#####From Stage 2: In stage 2 you will learn the basics of Python, including:

  1. Strings
  2. Loops (for and while)
  3. Variables
  4. If statements
  5. Types (like int, str, and bool)
  6. Lists
  7. Tuples
  8. Mutability
  9. Functions
  10. Return statements
  11. Print statements
  12. Debugging Python code
  13. Problem Solving

This will set you up to be able to build your own programs!

#####From Stage 3: In stage 3, you will continue learning Python, this time getting into its object oriented side. Here you will learn about:

  1. Classes
  2. Objects
  3. Methods
  4. Instances
  5. Instance variables
  6. Inheritance
  7. Method Overriding
  8. Import Statements
  9. The Python Standard Library
  10. Importing External Libraries
  11. Using documentation

#####From Stage 4: In stage 4 of the Intro to Programming Nanodegree, you will build the backend of a website using Python and Google App Engine. You'll learn:

  1. How to install, run, and deploy with Google App Engine
  2. How to use the .yaml file with GAE (Google App Engine)
  3. How to navigate folders appropriately when referencing different files with GAE
  4. Google Datastore
  5. How to use the webapp2 framework
  6. How to use jinja2 templates
  7. How to use Python dictionaries
  8. How to use the modulus operator in Python

#####From Stage 5: Stage 5 in the Intro to Programming Nanodegree will provide awareness of a variety of things instead of providing a higher level of competency. Some of the concepts in computing you will develop awareness about will be:

  1. Using JavaScript to bring web pages to life.
  2. Using APIs to easily access powerful data.
  3. Recursion
  4. Parallel computing
  5. How to solve large and long problems.
  6. Responsive Web Design: How to make web pages look good.

Now we can move into what a student will need to know before taking the Android Developer Nanodegree.

####Going into the Android Developer Nanodegree from the Intro to Programming Nanodegree You should hopefully have developed some level of mastery over object oriented concepts in the Intro to Programming Nanodegree. It would most likely still be useful to take all of CS101 in order to master various programming concepts.

Additionally, you will need to take How to Use Git and Github in order to learn how to use Git and Github effectively, which is a requirement for starting the Android Developer Nanodegree. This will be used for submitting projects, collaborating with your peers and coaches, and is generally a very useful skill to have, so this knowledge this course teaches is recommended for all of our other Nanodegrees as well.

You will most likely need to take Android Development for Beginners, which goes over some very necessary things for the Android Development Nanodegree, like installing Android Studio.

You will need to learn additional Java not taught in Android Development for Beginners, such as loops, switch statements, arrays and a few more basic variable types. You can learn more about these in lessons 4 - 7 of our Intro to Java Programming course. It would be recommended to first take the entirety of Intro to Java Programming before starting the Android Developer Nanodegree.

It would additionally be advantageous (but not required!) to have some familiarity with more advanced concepts, such as threads, using internet APIs, parsing JSON, regular expressions, databases, generics, interfaces and inner classes.

Some limited JSON and APIs are taught in Stage 5 of IPND; if you are interested, it may be beneficial to go over these in more depth with Lesson 5 of Web Development. (You will already have touched much of Web Development in stage 4!)

Additional information about going in to the Android Developer Nanodegree can be found here.

##What students will learn in the Android Developer Nanodegree

###The Android Developer Nanodegree Structure Nanodegree Structure

Nanodegree Courses

##Nanodegree Project Portfolio

You will build 8 different projects for this Nanodegree. First, you will design and build an app that shows off the apps that you'll create as part of this Nanodegree in stage 0. From there:

####Popular Movies, Stage 1

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. You will recieve information from an external API.

####Popular Movies, Stage 2

Add onto your project from Stage 1 with a detail view for each movie, allowing users to 'favorite' movies, and adding a tablet layout.

####Super Duo: Productionize Two Apps

Productionize two apps, taking them from a functional state to a production-ready state. To do this, you will find and handle error cases, add accessibility features, allow for localization, add widgets, and add a library.

####Build It Bigger

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.

####Make Your App Material

Implement Android design concepts and transform a functional newsreader app using material design techniques.

####Go Ubiquitous

Let users access the weather at a glance by building a Sunshine watch face for Android Wear.

####Capstone, Stage 1: Design, Scope and Plan Your App

Create a detailed plan, including UI mocks and technical specifications, for building your own app.

####Capstone, Stage 2: Build and Polish Your App for Production

This is your chance to take the skills that you've learned across your Nanodegree journey and apply it to an app idea of your own.

There is approximately one course for each project, although the capstone project will combine everything you learn!

###Curriculum Length: How long does the whole Nanodegree take? Assuming you are coming in with prior programming experience and averaging 10-20 hours per week, it will most likely take about 9-12 months. We have had our first graduate in about 3 months, although he had previous Android experience. Our timeline should be a bit conservative, and the timeline projects to about 12 months if that is the rate you go at.

###Project Difficulty Levels The Nanodegree projects maintain a semi-constant difficulty. There may actually even be less resistance as you go along, as you become more familiar with the coding environment and how the Android programs work!

##Android Tools ####Android Studio Android Studio is the IDE (Integrated Development Environment) that we use in this Nanodegree, and it is the main development environment that Android developers used. This replaces Eclipse, which is a popular open source platform most frequently used for Java, which used to be the place where most Android development was done. Google has made Android Studio to be the environment they endorse! It contains emulators, so that you can test your apps without actually using an Android device. The emulators are quite faithful, and there are also third party emulators that tweek the Android Studio emulator (like GenyMotion); they help to make the emulator work more quickly.

Emulators can't fully test apps, though, as it is difficult to test things which require the use of your location and maps if your location never changes! You won't need an Android device to take this Nanodegree, though, as the emulator will be sufficient. Emulators also have the advantage of being able to simulate all Android devices, whereas you would otherwise be constrained by the devices you have access to.

####Git and Github As previously mentioned, we will be using Git and Github often in this Nanodegree.

####Java vs. Python Java and Python are both object-oriented languages that can run cross-platform; there are both significant similarities and significant differences between the two. Java is strongly typed; that means that you have to declare what type every variable is before you use it, and you cannot change the type of variable. You'll find that it takes longer to make Java programs than it would to write similar Python programs, but that those Java programs can run faster.

#What kind of career does the Android Developer Nanodegree prepare you for? The Nanodegree prepares you very well for any form of Android Development! This includes becoming an Andriod Developer for any company which develops Android apps, as well as entrepreneurial opportunities from being able to develop for a platform with such a wide user base.

The Android Developer Nanodegree also gives substantial experience in Java development, and, as such, can also prepare students for Java development roles.

There is also a focus on design in the Android Development Nanodegree, and the Nanodegree could help prepare students for design heavy roles.