Android Roadmap Learning Resources by ASSIST Software

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

01 IDE languages Android Studio Kotlin

JAVA

02 Android components

Activity Fragment Service Broadcast Receiver

03 User interface
Drawables

UI Resources String
View
Static Drawables
android roadmap

ViewGroup
Dynamic

RecyclerView ViewPager Spinner

04 Storage

Shared Preferences File System Database (RoomDB)

05 Android JetPack

Behavios CPNT UI Components Foundation CPNT Arhitecture CPNT

06 3rd pARTY LIBRARIES

Networking MultiThreading Image Loading Dependency Injection

07 Architecture

MVC MVP MVVM

08 unit testing

Local Unit Testing Instrumentation Testing UI Testing

09 App realease .keystore file app bundle/APK Play Store

09 App
Keeprealease
learning and improving

FO R BE G I NN ERS
09
1 ffice
OApp Documentation
realease

09
2 earnrealease
LApp Java - Tutorial for Beginners

09
3 First Android App Using Android Studio (JAVA)
App realease

09
4 earnrealease
LApp Kotlin - Tutorial for Beginners

09
5 ourrealease
YApp First Kotlin Android App
RESOURCES

Android :

Java Basics
Java is a high-level programming language originally developed by Sun
Microsystems and released in 1995. Java runs on a variety of platforms, such as
Windows, Mac OS and the various versions of UNIX.

Documentation:
B ooks: Ex amples:
○ Basic Syntax
○ Android Notes for ○ Learn Java
○ Object and Classes
Professionals
Programming with
○ Constructors
examples

○ Loop Control

○ Inheritance

○ Overriding

○ Polymorphism

○ Abstraction

○ Encapsulation

○ Interfaces

○ More

Android asics :
b

U ser interface
● Off icial documentation:

Your app's user interface is everything that the user can see and interact with.
Android provides a variety of pre-built UI components such as structured layout
objects and UI controls that allow you to build the graphical user interface for your
app. In the following link you will find the official user interface documentation.
Also, some examples of components are listed and each of them is explained.

https://developer.android.com/guide/topics/ui/

● B uilding a Simple User Interface:

In this article you will learn how to create a layout in XML that includes a text field
and a button and how your app responds when the button is pressed by sending
the content of the text field to another activity. This article also contains code
RESOURCES

examples.

http://www.androiddocs.com/training/basics/firstapp/building-ui.html

● Ad p a tive UI Tutorial for Android with Kotlin:

Learn how to build an adaptive UI that looks and works well across all devices and
screen sizes.

https://www.raywenderlich.com/179-adaptive-ui-tutorial-for-android-with-kotlin

Android :

U ser inp t u

In this section you will learn about creating ways for a user to input
intended data.

The easiest way to do this is to use an EditText. An EditText is a view that permits
the user to type in data.

Bellow you have the link to the official documentation for it:

https://developer.android.com/reference/android/widget/EditText

A better and a more professional approach for this is to use a TextInputLayout,


which respects Material Design standards. Here you have an example and some
general guidelines:

https://material.io/develop/android/components/text-input-layout/

Other elements needed for helping a user to input data:

Dropdown Lists (Spinners):


https://developer.android.com/guide/topics/ui/controls/spinner (Official documentation)

https://www.tutorialspoint.com/android/android_spinner_control.htm

Android :

Multiple screens
● A ctivities:

Usually, building an application implies multiple screens. The easiest way to


implement more screens is to create more Activities. This link shows how to add a
new Activity from the Android Studio:

https://abhiandroid.com/androidstudio/create-new-activity-android-studio

Note: The Activity class and layout can be created manually, but in most cases,
auto-generating them is much faster. To manually create an Activity the following
steps are required: create the Activity Class + the Override functions, create the
layout, add the activity to the Manifest.xml file.

Working with activities will require the understanding of Activity Lifecycle


he way to start a second Activity is:

RESOURCES

startActivity(new Intent(this, SecondActivity.class));

Following link will show how to create a second activity and open it from a button
click: https://youtu.be/bgIUdb-7Rqo

F a ments:

● r g

Another way to work with multiple screens is to create Fragments inside your
activity and change between them.

Fragments are components similar to Activities, with the main difference being

they need to run inside an Activity(or another fragment).

Here is an introduction to what a fragment is:

https://www.tutorialspoint.com/android/android_fragments.htm

Here is an introduction to fragments + an example class:


https://guides.codepath.com/android/creating-and-using-fragments

Fragments are also good for reusing functionality and UI. The 2 primary uses for a
group of fragments in an Activity are:

a. ViewPager

b. TabLayout

Android :

Data storage
Off icial documentation (Java/Kotlin):

The official documentation is recommended to be read. It contains information


about the storage data and storage data types (Internal storage, External Storage,
Shared preferences and Databases). Each type also contains examples of
implementation in Java/Kotlin.

https://developer.android.com/guide/topics/data/data
nternal & External Storage (Java):

Learn how to write or read data from Internal or External storage. You will also find
examples of file operations, such as deletion etc.

http://codetheory.in/android-saving-files-on-internal-and-external-storage/

SharedPreferences (Java):

RESOURCES

Learn how to write or read data using SharedPreferences. In the link below is a
project example with SharedPreferences

https://www.journaldev.com/9412/android-shared-preferences-example-tutorial

Databases are divided into two categories:

elationals (based on Sql). Data manipulation is based on tables:

● R

○ SQL Lite Database. In the following link, you can learn how to write and read

data using sql lite (JAVA);

○ Room Database. Learn how to implement room database in android (+

project example - JAVA).

● Non-relationals (NoSql or Object Oriented). Data manipulation is based on

objects:

○ Realm. The official documentation is very well developed (JAVA);

○ Learn how to implement the ObjectBox database.

Android :

Backgro nd tasks u

Processes and threads overview. Learn how processes and threads work in an
Android application.
● Ui Thread. Every app has its own special thread that runs UI objects such as
View objects; this thread is called the UI thread. Only objects running on the UI

thread have access to other objects on that thread. See the explanation in the
following link: https://stackoverflow.com/a/3653478

● Working Threads or Background Processing refers to the execution of tasks in


different threads than the Main Thread, also known as UI Thread. There are
various ways of doing operations on a separate thread. See more about them in
the next link (with useful examples):

https://medium.com/elevate-by-lateral-view/background-processing-in-android-5
75fd4ecf769

● Async Task allows you to perform background operations and publish results on
the UI thread without having to manipulate threads and/or handlers. Learn more
about it in the official documentation:

https://developer.android.com/reference/android/os/AsyncTask

You’ll find a useful example here:

https://www.journaldev.com/9708/android-asynctask-example-tutorial
● Services and Intent services. A Service is an application component that can
perform long-running operations in the background. Learn more about them:

RESOURCES

https://developer.android.com/guide/components/services

https://google-developer-training.gitbooks.io/android-developer-fundamentals-co
urse-concepts/content/en/Unit%203/74_c_services.html

Android :

N et working
Most network-connected Android apps use HTTP to send and receive data. The
Android platform includes the HttpsURLConnection client, which supports TLS,
streaming uploads and downloads, configurable timeouts, IPv6, and connection
pooling.

● Connect to the network

R etrofit is a type-safe REST client for Android, Java and Kotlin developed by
Square. The library provides a powerful framework for authenticating and
interacting with APIs and sending network requests with OkHttp.

● Introduction

● Api Declaration

● Configuration

● Code Example ( Java)

● Consuming APIs with Retrofit

i e is a fast and efficient image loading library for Android focused on smooth
Gl d

scrolling. Glide offers an easy to use API, a performant and extensible resource
decoding pipeline and automatic resource pooling.

● Setup

● Getting started

● Options

● Caching

Android :

C stom v ie w s
u

Off icial documentation (Android Developers) Java/Kotlin:

In the following link you will find the official documentation for creating a custom
view. Here you will learn how to: Create a custom view class, Implement custom
drawing, Making the view interactive and Optimizing the view.

You will also find code examples in both Kotlin and Java.

https://developer.android.com/guide/topics/ui/custom-components

Using SharedPreferences:

A practical example of using the image is found in the following link:

https://www.journaldev.com/9412/android-shared-preferences-example-tutorial
Creating custom and compound views in Android – Tutorial (Java):

This tutorial covers how to create custom and compound views with Android. The
RESOURCES

article is divided into chapters, and at the end of the article you will find an
example for custom view.

http://www.vogella.com/tutorials/AndroidCustomViews/article.html
3 Features that Kotlin can help write in Android custom views:

This article explains how a simple application has been created. It has only one

activity with a custom text view and a custom button that are written in Kotlin, and
shows a custom typeface loaded from assets directory.

https://ask.ericlin.info/post/2017/08/3-features-that-kotlin-can-help-to-write-andr
oid-custom-views/

Android :

U nit testing
There are several types of test units with different purposes. The official
documentation contains details about these types, the purpose for which they are
used, and how to implement them in Java / Kotlin:

https://developer.android.com/training/testing/unit-testing/

Unit testing fundamentals: understand the Testing Pyramid; write small, medium or
large unit tests.

https://developer.android.com/training/testing/fundamentals

Questions that must answer a unit test. Learn how to write a unit test.

https://medium.com/javascript-scene/what-every-unit-test-needs-f6cd34d9836d

In the link below on vogella.com there are examples of implementation for different
types of unit tests, as well as examples of tests on different Android components
(e.g., content provider, broadcast Receiver, Aplication class etc.):

http://www.vogella.com/tutorials/AndroidTesting/article.html

How to create test units on an MVP architecture? In the link below there is a nice
example + a project that uses the MVP architecture.

In this example,Kotlin is used.

https://www.raywenderlich.com/195-android-unit-testing-with-mockito

G it technology
G it is a version control system used in every day work by developers. More about
VCS can be found on this link:
RESOURCES

https://www.atlassian.com/git/tutorials/what-is-version-control

Shortly, Git is a technology that helps development teams to unite the code on
which developers work and not only. More details about Git technology and how to
work with it:

https://readwrite.com/2013/09/30/understanding-github-a-journey-for-beginners-
part-1/

Android : Kotlin
Kotlin is a programming language introduced by JetBrains, the official designer of
the most intelligent Java IDE, named Intellij IDEA. This is a statically typed
language that runs on JVM. In 2017, Google announced Kotlin is an official
language for android development. Kotlin is a great fit for developing Android
applications, bringing all of the advantages of a modern language to the Android
platform without introducing any new restrictions.

Official Kotlin Documentation:

● Basic Syntax
● Alternative documentation

● Classes and Inheritance


● Code Examples

● Properties and Fields


● Book: Kotlin Notes for Professionals

● Interfaces

● Data Classes

● Enum Classes

● More

Android :

Material Design
Material Design consists of guidelines on how to create an attractive design and
make an application more attractive for a user to interact with it.

● Official documentation for Material Design:

https://developer.android.com/guide/topics/ui/look-and-feel/

Using these guides will help an application to be intuitive, easy to use, and an
all-round optimized positive user experience. Other useful links:

https://material.io/

Android :

RESOURCES

“ Inspiratio N ” so rces u

Android has a large community of passionate users and developers who contribute
to the growth of the community. There is no shame in asking other people for
answers or using open source libraries. Some good sources for this are:

https://android-arsenal.com/ - all types of open source libraries

https://www.uplabs.com/android

https://github.com/ - a good source of projects & example projects


VERY IMPORTANT: How to search for answers


T he more you will work with Android you will find out one of the best abilities is
searching the web for answers. Let’s take a problem: You need to show and error
for a text field and you don’t know how. Go to Google and type: “android textfield
set error”. Some of the best answers are to be found on https://stackoverflow.com.
Just remember these simple rules for searching an answer:

a. Type “android” (if it’s more related to sintax you can type first “java” or “kotlin”,
depending on language)

b. Type the component you encountered the problem on: activity, fragment,
textfield, image, background, task, etc.

c. State the problem: X not working, Y not showing, how to make Z


Also, don’t forget to check the official documentation on


https://developer.android.com/

how to ecome a
b

pow erf l learner ! u

• Your attitude influences your brain's ability to process and understand


information. Give your brain a positive attitude!

• Your motivation is the fuel for your learning. Find your WHY with Simon
Sinek!
• You have to focus in order to understand. Learn how to focus with Christina
Bengtsson!

• Your brain needs a certain pace to learn optimally. Give your brain 25
minutes of learning!
RESOURCES

• Take notes like a pro! Learn to take notes with Ed Developer!

• There are lots and lots of tricks and tips. Listen to Marty Lobdel talking about
learning!

• Use Learning Games!

Learn how to build your first


Android app.

Apply for an internship

You might also like