NANODEGREE PROGRAM SYLLABUS Android Kotlin Developer

Transcription

NANODEGREE PROGR AM SYLL ABUSAndroid KotlinDeveloperNeed Help? Speak with an Advisor: www.udacity.com/advisor

OverviewBuilt in collaboration with Google, this program will prepare you to become a professional Androiddeveloper, and allow you to create a diverse portfolio of projects to show employers. By the end of thisprogram you will be able to use Android development platform best-practices, Android Studio, AndroidJetpack and Kotlin to build your own applications for the world’s most-used mobile platform.A graduate of this program will be able to: Design engaging interfaces that implement modern Android components to effectively buildcompelling features for the end user. Incorporate remote data into an app by utilizing RESTful interfaces and web APIs. Organize, store, retrieve, and display content on an Android device to provide users with a moreconsistent, performant, and accessible experience, even while offline. Integrate hardware capabilities such as location to provide users with mobile enriched features withinan Android app. Architect an Android app using the established MVVM pattern for scalability and performance.I N CO L L A B O R AT I O N W I T HEstimated Time:4 Months at10 hours / weekPrerequisites:Experience withObject-OrientedProgrammingFlexible Learning:Self-paced, soyou can learn onthe schedule thatworks best for you.Need Help?udacity.com/advisorDiscuss this programwith an enrollmentadvisor.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 2

Course 1: Developing Android Apps, Part 1In this course, use common Android UI components to build a basic user interface, handle user input and Androidlifecycle events, and create dynamic and navigable interfaces using constraint-based layouts. You’ll also learnhow to use the Gradle build process to declare library dependencies and establish application parameters, andintegrate application functionality with other applications or components with Android.Course ProjectBuild a Shoe StoreInventory AppIn this project, you will build an Android application with Kotlin! Youwill build a multi-screen Android app and create a navigation graphto take the user through the app. You will use fundamental Androiddevelopment skills to set up a development environment for anAndroid app, use Android Studio’s Layout Editor, and implementbest practices for navigation and user interface in Android. You’llalso follow recommended Android app architecture guidance withViewModel and LiveData lifecycle classes.LEARNING OUTCOMESLESSON ONELESSON TWOLESSON THREEBuild your First App Explore the basics of Android, such as creating text, images,and interactive buttons Set up the development environment and create a DiceRoller Android app Navigate the Main Map Anatomy of an Android app.Layouts Learn different kinds of views and resources Explore arranging elements with the Android Studio’sLayout Editor Connect views with data through data bindingApp Navigation Learn how to build apps that contain multiple screensknown as destinations Use Android Studio tools to create and visualize a map, orgraph, of destinations that show navigation paths in yourapp Learn the navigation patterns and user interface thatAndroid users expect to see, so that your app will beintuitive and familiarNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 3

LESSON FOURLESSON FIVEActivity andFragment LifecycleApp Architecture (UILayer)Need Help? Speak with an Advisor: www.udacity.com/advisor Learn all about the Android Activity Lifecycle Create a one-screen app called Dessert pusher Debug common issues through an understanding oflifecycles Learn one way to structure an Android app and thebenefits that come with this design Learn about two classes in the lifecycle library: ViewModeland LiveDataAndroid Kotlin Developer 4

Course 2: Developing Android Apps, Part 2In this course, you will learn how to implement data persistence in your application, display collections ofdata to users using RecyclerView, and use APIs to connect to, store, and retrieve data. You will also learnbest practices of Material Design to create a quality user experience and learn how to make an app moreaccessible to as many users as possible.Course ProjectBuild an Asteroid RadarAppIn this project, you will build an app using a free, open sourceAPI provided by the NASA JPL Asteroid team. You will create anapplication that connects to the internet to retrieve and display livedata, implement networking best practices to fetch and display dataand images, and create a database to store and access user data overtime. You will also learn to use RecyclerView to create a clear andcompelling UI to display the data. Finally you will test your app withTalkback enabled and make your app more accessible for as manyusers as possible.LEARNING OUTCOMESLESSON ONELESSON TWOLESSON THREERecycler View Implement the ViewHolder pattern to optimize performancewhen displaying large sets of data with RecyclerView. Display large collections of data in a user consumable andnavigable format. Optimize application performance when updating datacollections that affect the UI.Connect to theInternet Build an application that connects to an internet server toretrieve and display live data Simplify fetching data and images, to make sure the appreasonably conforms to networking and image loading bestpracticesBehind the Scenes Learn how to implement offline caching by building an app thatlets users watch DevByte videos Take an online-only app and transform it to work offline byadding offline cachingNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 5

LESSON FOURDesigning forEveryone Improve your app design to support multiple languages as wellas support multiple device sizes and orientations Learn how to make your app accessible for users who mightneed assistance navigating, like supporting talkback and pushbutton navigationNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 6

Course 3: Advanced Android Apps withKotlin, Part 1In this course you will learn how to enhance your application’s functionality and drive user engagementusing Android’s robust notification system, build custom views, and use canvas drawing to allow for theupdate of a display based on data or user interactions. You will also be able to create simple animationsto enhance the presentation of content and overall usability of the application.Course ProjectDesign an App withApplication LoadingStatusIn this project you will create an Android app that will downloada file from the internet, and create notifications, custom viewsand animations to build a status bar in your app. You will be ableto create a notification to send messages to a user within anAndroid app, and design and style the notifications. You will alsobuild custom views using canvas and paint, animate UI elementswith property animations, and use MotionLayout to enhance theuser experience of your app.LEARNING OUTCOMESLESSON ONEUsingNotifications Send messages to users using notifications Design and style notifications Add buttons and actions to notifications Send push messages using Firebase Cloud MessagingLESSON TWOCreating CustomViews Create custom views for your appLESSON THREEDrawing onCanvas Objects Build an app that allows users to paint directly on the screenLESSON FOURClipping CanvasObjects Create and display transformed and clipped regions to thescreen Translate the origin of a drawing surface of a region Draw multiple shapes on a canvasNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 7

LESSON FIVEAndroid PropertyAnimations Use animations to draw attention to important UI elementsand beautiful designs Animate UI elements with property animationsLESSON SIXUsing MotionLayout to AnimateAndroid Apps Use declarative XML with MotionLayout to coordinateanimations across multiple viewsNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 8

Course 4: Advanced Android Apps withKotlin, Part 2In this course you will learn how to build an app with location awareness and Google Maps. You will also learnbest practices and techniques for testing to enable you to scale your app quickly and safely, while mitigatingany negative effects, and how to use Firebase for authentication and remote storage.In this project, you will build a To-do List app that includesGoogle Maps and location services. You’ll learn how to addGoogle Maps and style map views in your Android application,and enable location services and tracking. With location servicesand reminders, your app will remind users to perform an actionwhen the user is at a specific location.Course ProjectBuild a LocationReminder AppCapstone ProjectDesign and Build anAndroid ApplicationIn this project, you will have the opportunity to design and buildeither 1) a custom Android application inspired by your own ideaor 2) a Political Preparedness application that will deliver civic datato end users via the app. You’ll apply skills acquired throughout theNanodegree to design an engaging user interface that incorporatesdata from RESTful interfaces and web APIs, and utilizes mobilehardware to enhance application functionality and provide anengaging user experience. The project will allow you to showcaserecommended Android app architecture patterns, delivering ahighly functional and scalable application that takes full advantageof the Android platform.LEARNING OUTCOMESLESSON ONEWandering in GoogleMaps with Kotlin Add Google Maps functionality to an Android app Style Google Maps views in multiple ways in an AndroidappLESSON TWOVirtual Treasure Huntwith Geofences Enable location services and trackingNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 9

LESSON THREETesting: Basics Learn how to test your app before distribution to avoidcrashes or unpredictable behaviorLESSON FOURIntroduction toTest Doubles andDependency Injection Use test doubles and dependency injection to test an app Write tests with Espresso for UI testing Use mockito to create an integration testLESSON FIVESurvey of AdvancedTesting Topics Implement end to end testing using navigation, coroutines,room and databinding.LESSON SIXImplementing Loginon Android withFirebaseUI Implement user login and identity management for yourapp using the open-source library FirebaseUI Enable login and logout for your app’s users Control navigation in your app based on whether a user islogged inNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 10

Our Classroom ExperienceREAL-WORLD PROJECTSBuild your skills through industry-relevant projects. Getpersonalized feedback from our network of 900 projectreviewers. Our simple interface makes it easy to submityour projects as often as you need and receive unlimitedfeedback on your work.KNOWLEDGEFind answers to your questions with Knowledge, ourproprietary wiki. Search questions asked by other students,connect with technical mentors, and discover in real-timehow to solve the challenges that you encounter.WORKSPACESSee your code in action. Check the output and quality ofyour code by running them on workspaces that are a partof our classroom.QUIZZESCheck your understanding of concepts learned in theprogram by answering simple and auto-graded quizzes.Easily go back to the lessons to brush up on conceptsanytime you get an answer wrong.CUSTOM STUDY PLANSCreate a custom study plan to suit your personal needsand use this plan to keep track of your progress towardyour goal.PROGRESS TRACKERStay on track to complete your Nanodegree program withuseful milestone reminders.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 11

Learn with the BestDan GalpinAleks HaeckyI N S T R U C TO RD E V E LO P E R A D V O C AT EDan Galpin is a Developer Advocate forAndroid at Google, focusing on Androidperformance tuning, developer training, andgames. He has over 10 years of experience inmobile, developing at almost every layer ofthe phone stack.Aleks is a Writer and Developer Advocatewith over 20 years of experiencedeveloping media and tools that bringtechnologies and programming todevelopers. They believe in the power ofeducation, and Android development as askill that can change lives.Sean McQuillanMurat YenerD E V E LO P E R A D V O C AT EA N D R O I D D E V E LO P E R A D V O C AT ESean has a decade of experience as astartup engineer in San Francisco where helearned how to build successful apps. Seanis passionate about building high qualityproducts - quickly. When he is not workingon Android you can find him fiddling on thepiano or crocheting hats.Murat has been an Android Developer backto Froyo, worked on wearable and other formfactor Android devices. He is a code geek,open source committer, Java Champion andthe author of Expert Android Studio andProfessional Java EE Design Patterns books.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 12

Learn with the BestChet HasseMeghan MehtaC H I E F A N D R O I D A D V O C AT EAT G O O G L EA N D R O I D D E V E LO P E R A D V O C AT E ATGOOGLEAfter being on, and leading, the UI Toolkitteam on Android for several years, Chetjoined the Developer Relations team.His focus and passion has always beenUI, graphics, animation, performance,and anything that puts the pixels on thescreen, in addition to helping developerswrite great apps.Meghan is a Developer Advocate on theAndroid team. She has been a mobiledeveloper for many years at Disney,Foursquare, Yelp and now Google.She loves sharing her knowledge andexperience with other developers. Whenshe is not working you can find hersinging, dancing, or baking!Caren ChangLyla FujiwaraD E V E LO P E R P R O G R A M S E N G I N E E RA N D R O I D D E V E LO P E R A D V O C AT E ATGOOGLECaren is a Developer Programs Engineer forthe Android Frameworks team at Google.Need Help? Speak with an Advisor: www.udacity.com/advisorLyla authored many of the fundamentalAndroid samples and trainings for AndroidJetpack, Kotlin and testing. She’s also hadthe honor of teaching everyone from highschool students to senior developers howto make Android apps. These days, she’spart of the team bringing you the GoogleNews Android app.Android Kotlin Developer 13

Learn with the BestAsser SamakJoshua DonlanA N D R O I D D E V E LO P E R A D V O C ATAT G O O G L ES E N I O R A N D R O I D D E V E LO P E RAT H A LO G E N T VAser has been building educationalAndroid apps with Udacity & Google forthe past 4 years, he enjoys teaching witha focus on best-practices and building asolid foundation at an early stage. Aserloves solving the Rubik’s cube which isfeatured in many of his videos - try to findthem all.Joshua has 20 years experience as aweb and mobile application developerhelping launch multiple startups and growestablished companies alike. His clientportfolio includes Fortune 100 companiesAudi, Disney, Mitsubishi, AmericanExpress, BD Pharmaceuticals, and more.Kevin MooreJesus ValdezS TA F F S O F T WA R E E N G I N E E RAT A F F I R MS E N I O R A N D R O I D D E V E LO P E RAT H A N DYKevin has been doing Android developmentfor over 9 years, developing many differenttypes of apps. In addition, Kevin has beenwriting articles, Tech editing books, andcreating videos for raywenderlich.com andLinkedIn Learning.Kevin is a mechatronics engineer withan MS in machine learning. He works asa mobile developer, and is proficient in:Mobile Development, Image Processing,Machine Learning, Electronics, andAutomation.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 14

Learn with the BestAida IssayevaMohamed HabibA N D R O I D E N G I N E E R ATCL ARIT Y MONE YANDROID ENGINEERAT A N D E L AAida is an Android Engineer at ClarityMoney, a personal finance managementapp. Previously, she has built androidapplications for various industries, rangingfrom cloud gaming services to satellite datacommunications. When she’s not coding,she’s chasing great food experiences all overthe world.Mohamed is an experienced AndroidEngineer with 5 years of experience,passionate about teaching and mentoring,he has a strong engineering professionalwith a bachelor’s degree in ComputerScience from Ain Shams University.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 15

All Our Nanodegree Programs Include:EXPERIENCED PROJECT REVIEWERSREVIEWER SERVICES Personalized feedback & line by line code reviews 1600 Reviewers with a 4.85/5 average rating 3 hour average project review turnaround time Unlimited submissions and feedback loops Practical tips and industry best practices Additional suggested resources to improveTECHNICAL MENTOR SUPPORTMENTORSHIP SERVICES Questions answered quickly by our team oftechnical mentors 1000 Mentors with a 4.7/5 average rating Support for all your technical questionsPERSONAL CAREER SERVICESC AREER SUPPORT Resume support Github portfolio review LinkedIn profile optimizationNeed Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 16

Frequently Asked QuestionsPROGR AM OVERVIE WWHY SHOULD I ENROLL?Android dominates the market of mobile operating systems, with over 75% ofthe global market share. Kotlin is Google’s preferred language for Android appdevelopment, and the Android Developer with Kotlin Nanodegree programwill teach you how to develop cutting-edge applications on the world’s mostpopular mobile platform. Kotlin has become the fastest-growing programminglanguage, according to GitHub, and it’s increasingly being used by companieslike Google, Square, Pinterest, CapitalOne, and Atlassian.In this Nanodegree program, you’ll learn the fundamentals of buildingAndroid applications using Kotlin. This program will prepare you to becomea professional Android developer, and allow you to create a diverse portfolioof apps to show employers. By the end of this program you will be able to useAndroid development platform best-practices, Android Studio, Android Jetpackand Kotlin to build industry-defining applications for the world’s most-usedmobile platform.WHAT JOBS WILL THIS PROGRAM PREPARE ME FOR?This Nanodegree program is designed to prepare you for a job as aprofessional, junior to mid-level Android Developer within a wide range oforganizations and environments: from large corporations where you’d likely bepart of a development team, to entrepreneurial start-ups and contract projectswhere you could be working independently to deliver an application.HOW DO I KNOW IF THIS PROGRAM IS RIGHT FOR ME?If you are a programmer who is interested in mastering the Android platformand building top-rated Android apps in Kotlin, this is the program for you.If you are not ready for this intermediate-level program, or if you are new toprogramming, please check out our Android Basics Nanodegree program.ENROLLMENT AND ADMISSIONDO I NEED TO APPLY? WHAT ARE THE ADMISSION CRITERIA?There is no application. This Nanodegree program accepts everyone, regardlessof experience and specific background.WHAT ARE THE PREREQUISITES FOR ENROLLMENT?A well-prepared student should: Be comfortable with Object-Oriented Programming and the Android platform. Have experience navigating GitHub, and be comfortable using a Modern IDE. Be familiar with threads and concurrency, and with modular apparchitectures. Have familiarity with modern language syntax including:Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 17

FAQs Continued Optionals/Nullable TypesMethods with default and variable argumentsData ClassesObject ExpressionsLambdasExtension FunctionsIF I DO NOT MEET THE REQUIREMENTS TO ENROLL, WHAT SHOULD I DO?We have a number of Nanodegree programs and free courses that can help youprepare, including: Android Basics Nanodegree program How to Use Git and GitHubTUITION AND TERM OF PROGR AMHOW IS THIS NANODEGREE PROGRAM STRUCTURED?The Android Kotlin Developer Nanodegree program is comprised of content andcurriculum to support five (5) projects. We estimate that students can completethe program in four (4) months, working 10 hours per week.Each project will be reviewed by the Udacity reviewer network. Feedback will beprovided and if you do not pass the project, you will be asked to resubmit theproject until it passes.HOW LONG IS THIS NANODEGREE PROGRAM?Access to this Nanodegree program runs for the length of time specified inthe payment card above. If you do not graduate within that time period, youwill continue learning with month to month payments. See the Terms of Useand FAQs for other policies regarding the terms of access to our Nanodegreeprograms.SOF T WARE AND HARDWAREWHAT SOFTWARE AND VERSIONS WILL I NEED IN THIS PROGRAM?All students will need a personal computer that is capable of running AndroidStudio. Please see the System Requirements listed on the Android Studiodownload page and ensure that your computer meets these minimumrequirements.Access to an Android device is helpful, but not necessary. You may use theemulator in Android Studio to run your apps if you do not have a physicalAndroid device.Need Help? Speak with an Advisor: www.udacity.com/advisorAndroid Kotlin Developer 18

In this project, you will build an Android application with Kotlin! You will build a multi-screen Android app and create a navigation graph to take the user through the app. You will use fundamental Android development skills to set up a development environment for an Android app, use