EESTEC Competition for Android Online Seminar
Introduction to Android Basics - First Session 12/21/2014
Make sure you register for second session on 1/11/2015
5. 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
6. SPEAKER INTRODUCTION
Goran Djonovic - Software Engineer
Execom: www.execom.eu
Twitter: @gdjonovic – fastest way to ask question and get answer
Email: djonovic.g@gmail.com
LinkedIn: http://www.linkedin.com/in/gdjonovic
Slide share: http://www.slideshare.net/gorandjonovic
Git hub: https://github.com/gdjonovic
Blog: http://gdjonovic.me
14. 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.html
coursera.org
udemy.com
youtube.com
edx.org
/ 11
16. How start development
● Install java
● Download eclipse ADT or Android Studio
● Unlock developer options (if you have device)
● Start making some apps!
19. 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
20. The fastest technology adoption in
history!!!
/ 16
Source : http://www.moweble.com/career-opportunities-in-mobile-apps-development.html
22. 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 ☺
23. 3 Principles of Marketing
•Principle of Customer Value
•Principle of Differentiation
•Principle of Segmentation, Targeting, and
Positioning
Question: What is fair value?
24. Understand your users (Psychology)
•User groups
•Backgrounds
•Context
•Way of interaction
•Needs
25. Make your app look nice (Design)
•Colors
•UI elements
•Blend with OS
•Attract user attention
•….
26. 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 :)
29. 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
45. 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
48. 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
49. 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. 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
52. What about those fragments?
http://developer.android.com/guide/components/fragments.html
53. 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. 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. 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. 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. 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. 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. 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>
61. How do people use phones
Source: http://hbr.org/2013/01/how-people-really-use-mobile
62. 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
63. AGENDA
- How to start
- What is android all about
- Impact of mobile
- It’s (NOT) all about the code
- Android basics
- Good app ideas