#Agenda
- Intro
- Learning Objectives
- Your Instructors
- Why Android?
- Hot technologies in 2016 and where "Dev" is at (Blaise ~20mins)
- What are the first things you need to know to make Android apps? (Graeme ~20mins)
- Q&A
#Learning Objectives
- Gain an understanding for popular technologies used in web, app and software development
- Understand which of these technologies are applicable to Android
- Understand what native versus hybrid means, with regards to app development
- Identify the basic building blocks of Android applications
- Understand how Android uses XML to create layouts of Activities
- Understand the basics of a Java Class
- Recognize a Java Class that represents an Activities logic
#Your Instructors
###Graeme Craven
(picture)
###Blaise Thomas
(picture)
#Why Android?
- Android has 82.8% of the global mobile OS market share (per http://www.idc.com/prodserv/smartphone-os-market-share.jsp)
- Android is an ever changing, growing environment. It is also an excellent platform to learn how to write software!
- Android jobs are on the rise; companies that used to solely focus on iOS apps realize that the market has changed. To reach more users, they must target the Android platform.
#TASK:
###Grab an index card and make a list of all the programming languages you have heard of; then put an asterisk next to languages you have learned a little bit about, or a double asterisk if you know it well.
(2 minutes)
#Share
###Let's take a moment to share all our thoughts and have a discussion
- Which languages you have listed are used in Web Development?
- Which languages are used in app development?
- Which are used in software development?
####Notice that these boundaries (between software, websites and apps) are becoming increasingly blurred.
####As websites and web apps grow in complexity they become increasingly similar to apps. Indeed this trend seems as though it will continue.
#Web Technologies
Hopefully on your index card you will have listed:
- HTML
- CSS
- Javascript
Can anyone tell me what these languages do?
Cool so if we were comparing web technologies to the human body you could say:
- HTML is like the skeleton
- CSS is like the skin, clothes, makeup
- Javascript is like the brain, muscles, nervous system.
#Native Android Technologies
Has anyone listed XML and Java? Give yourself a pat on the back.
You can think of XML as the HTML for Native Android development, and Java as the Javascript.
BUT REMEMBER!!! Java is to Javascript as Car is to Carrot! They are quite different
#By the way:
Native iOS development happens in a language called Objective C or Swift (or Swift 2)
But Android is wayyyy cooler.......
....................... (quick hit the next slide!)
#Hybrid development
Imagine you can make an app, and all that app does is launch your web browser full screen (Safari on an iPhone and Chrome on an Android). You could then essentially view and ineract with a web app (coded in HTML CSS and Javascript) withtout even knowing it (providing you make it look right)
Hybrid mobile development is really hot this year, and its really cool. You can do SO MUCH with it. You can access a bunch of the phone's hardware (Camera, accelerometer, LED light, gyro etc) and you can deploy apps to iPhone and Android from a single codebase. (You no longer need to hire both Android and iOS developers!!!!)
#Whaaaaaaaat?
So what is NATIVE development and why learn it?
The issues are surrounding PERFORMANCE
- Games
- Apps where you are doing video, audio or image processing
- or accessing things such as keyboard layers or other apps.
are all going to require native android development.
#What is the first question you have in your head about how to start developing for Android?
#What software do I need for Android development?
- JDK - a software development environment used for developing Java applications
- Android SDK - a set of development tools used to develop applications for Android platform
- Android Studio - the official integrated development environment (IDE) for developing for the Android platform
#How do I make a page in a native Android app?
#What is an Activity?
- Activity is a Java class that supports a screen or UI
- It contains the building blocks of the user interface
- The Activity is a pre-defined class in Android and every application which has a UI must inherit it to create a window
#How do we create the visual elements (Views) of an Activity?
- Every Activity with a UI has a supporting XML layout file.
- The XML contains a family tree like structure to define the Views in the Activity
- There are ViewGroups (parents) and Views (children)
- Each View declares pre-defined attributes that dictate it's behavior on screen
#What does the Activity Java Class look like?
- Contains Variables (pieces of data) and Methods (logic operations)
- Pre-defined methods include the lifecycle of the Activity, such as onCreate() and onDestroy()
- Extends the base Activity Class
#Think of something that happens to an Activity (page in an app) that might necessitate a lifecycle method. Something between it’s creation and destruction.
#Let's discuss what we've learned
- You know what tools you need to get started
- You know what options are available for building Android apps
- You can recognize the building blocks of an Android Activity
- You know how to put together your own Activities using XML
- You understand how you can use logic to interact with your XML Views