eca online-seminar-session-1.pptx
TRANSCRIPT
EESTEC Competition for AndroidTM
WELCOME TO THE FIRST SESSION OF
ECA Android Basics Online Seminar
Introduction
Host: Angelos Karatsidis - ECA Main Coordinator
Speaker: Goran Djonovic - Android Developer
EESTEC Competition for Android
- 504 Idea Submissions...- 413 Teams…- 717 Individuals…- 54 countries…- 6 continents!
EESTEC Online Seminar
- Project organized by EESTEC International- Integrates the training goal of ECA - Part 1: “Intro to Android Basics”- Topics tailored to your needs- Next session: Sunday, 11th January
SPEAKER INTRODUCTION
Goran Djonovic - Software Engineer Execom: www.execom.euTwitter: @gdjonovic – fastest way to ask question and get answer
Email: [email protected]: http://www.linkedin.com/in/gdjonovic
Slide share: http://www.slideshare.net/gorandjonovicGit hub: https://github.com/gdjonovicBlog: http://gdjonovic.me
I did this before...
I do this a lot...
Let’s APP the world!
Questions ?
AGENDA
- How to start- What is android all about- Impact of mobile- It’s (NOT) all about the code- Android basics- Good app ideas
Before we start
- Link to slides will be provided with recording of this talk
- We use crowdcast-
Google it out
How to start learning
Books (ain't nobody got time for that right? :))Effective Java by Joshua Bloch
Android Programming: Pushing the Limits by Erik Hellman
http://developer.android.com/index.htmlcoursera.orgudemy.comyoutube.comedx.org
/ 11
Android Architecture
/ 11
How start development
● Install java● Download eclipse ADT or Android Studio● Unlock developer options (if you have device)
● Start making some apps!
http://developer.android.com/sdk/index.html
It’s not just about mobile
What is mobile development
Wiki says: “Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones”
WHAT DO YOU THINK?
/ 11
The fastest technology adoption in history!!!
/ 16
Source : http://www.moweble.com/career-opportunities-in-mobile-apps-development.html
PCs Vs. Smartphones
Source: http://www.businessinsider.com/smartphones-versus-pcs-2013-8
You want to build some cool app
What course should you take?• Introduction to Psychology
• Introduction to Business
• Introduction to Android/iPhone/Windows Phone
• Introduction to Marketing
• Introduction to Design
All of the above ☺
3 Principles of Marketing
•Principle of Customer Value
•Principle of Differentiation
•Principle of Segmentation, Targeting, and Positioning
Question: What is fair value?
Understand your users (Psychology)
•User groups
•Backgrounds
•Context
•Way of interaction
•Needs
Make your app look nice (Design)
•Colors
•UI elements
•Blend with OS
•Attract user attention
•….
Operational Excellence (Android programming)
This is what you as a developer need to provide• Make the app fast and easy to use
• Save power
• Protect data and the users
• No bugs
• Keep it simple
•Don’t be evil :)
DESIGNING FOR ANDROID
What about all those different devices out there?
What is fragmentation you ask ☺
• The Blessing
• The Curse
• Let’s look at the study done by OpenSignalMaps.
Over 6 months they've been logging the new devices that download OpenSignalMaps. They've looked at model, brand, API level (i.e. the version of Android) and screen size…
…. And what did they find out
/ 24
3997 distinct devices!!!
/ 24
What about resolutions?
/ 24
Start with 240x320px
/ 24
Then we have 320x480px
/ 24
400x800px
/ 24
And then 480x854px
/ 24
Also common 720x1280px
/ 24
And at the and 1080x1920px Full-HD
/ 24
Minimum Vs. Maximum
/ 24
Vs.
27 time more pixels
Where to start
• Current flagship model
• Most common resolution
• Start with small
… It depends
/ 24
Density independent pixel DIP
/ 24
Density Buckets
/ 24
Tap target
/ 24
Icon size
/ 24
Scale independent pixel - SIP
/ 24
Designing UI and Designing Interaction
•Go to http://developer.android.com/design/index.html
•Make important things fast
• If it looks the same, it should act the same
•Only show what I need when I need it
/ 24
Material Design
ANDROID BASICS
Android concepts
• Activity – visual user interface focused on a single thing a user can do
• Service – no visual interface – they run in the background
• Broadcast receiver – receive and react to broadcast announcements
• Content provider – allow data exchange between applications
• Intent
•Manifest
48
Applications
• Written in Java
• Each application runs in its own process
• Each process has its own separate VM
• Each application is assigned a unique Linux user ID – by default files of that application are only visible to that application (can be explicitly exported)
49
50
Activities
• Basic component of most applications
• Most applications have several activities that start each other as needed
• Each is implemented as a subclass of the base Activity class
Understanding the lifecycle
51
What about those fragments?
http://developer.android.com/guide/components/fragments.html
53
Activities – The View
• Each activity has a default window to draw in (although it may prompt for dialogs or notifications)
• The content of the window is a view or a group of views (derived from View or ViewGroup)
• Example of views: buttons, text fields, scroll bars, menu items, check boxes, etc.
• View(Group) made visible via Activity.setContentView() method.
54
Services
• Does not have a visual interface
• Runs in the background indefinitely
• Examples• Network Downloads• Playing Music• TCP/UDP Server
• You can bind to a an existing service and control its operation
55
Broadcast Receivers
• Receive and react to broadcast announcements
• Extend the class BroadcastReceiver
• Examples of broadcasts:• Low battery, power connected, shutdown, timezone changed, etc.• Other applications can initiate broadcasts
56
Content Providers
• A content provider presents data to external applications• Makes some of the application data available to other applications
• It’s the only way to transfer data between applications in Android (no shared files, shared memory, pipes, etc.)
• Extends the class ContentProvider;
• Other applications use a ContentResolver object to access the data provided via a ContentProvider
57
Intents
•An intent is an Intent object with a message content.
•Activities, services and broadcast receivers are started by intents. ContentProviders are started by ContentResolvers
58
Shutting down components
•Activities• Can terminate itself via finish();• Can terminate other activities it started via finishActivity();
•Services• Can terminate via stopSelf(); or Context.stopService();
•Content Providers• Are only active when responding to ContentResolvers
•Broadcast Receivers• Are only active when responding to broadcasts
59
Android Manifest
• Its main purpose in life is to declare the components to the system:
<?xml version="1.0" encoding="utf-8"?><manifest . . . > <application . . . > <activity android:name="com.example.project.FreneticActivity" android:icon="@drawable/small_pic.png" android:label="@string/freneticLabel" . . . > </activity> . . . </application></manifest>
WHAT ABOUT IDEAS?
How do people use phones
Source: http://hbr.org/2013/01/how-people-really-use-mobile
How to get great idea
- Look around you- Look at some global trends - Find the problem (that you can relate to)
- Investigate/Think/Create- Solve the problem
AGENDA
- How to start- What is android all about- Impact of mobile- It’s (NOT) all about the code- Android basics- Good app ideas
Let’s APP the world!
Questions ?
THANK YOU ALL! :) See you again on 11th of January 2015
HAPPY HOLIDAYS