Eca online-seminar-session-1.pptx

Post on 13-Jul-2015

178 views 0 download

Tags:

Transcript of Eca online-seminar-session-1.pptx

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: djonovic.g@gmail.comLinkedIn: 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

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

Contact

Competition for Android

competition.eestec.net

eca-cp@eestec.net

Let’s APP the world!

Questions ?

THANK YOU ALL! :) See you again on 11th of January 2015

HAPPY HOLIDAYS