81

Workshop - Szkolenie Xamarin Android

Embed Size (px)

DESCRIPTION

Szkolenie

Citation preview

Page 1: Workshop - Szkolenie Xamarin Android
Page 2: Workshop - Szkolenie Xamarin Android

Reklama

Reklama

Page 4: Workshop - Szkolenie Xamarin Android

O Mnie • Nazywam się Andrzej Piotrowski aka Sir Anen

• Jestem po Rolnictwie – Kadży orze jak Może

• Pracowałem dla Credit Swiss, Viessmann R&D czy IBM’ie + Agencje Kreatwyne – Wrocław

• Przeprowadze dla was wstęp techniczny

• Czemu nikt mi za to nie płaci

• Wiem że Umiem – Ty też to Umiesz (siła woli)

• Zaczynamy przygode – pytanie to ręka w górę

Page 5: Workshop - Szkolenie Xamarin Android

Agenda• Xamarin – Z czym sie to wiąże w Mobile

• Android – Jak wygląda praca z Nim

• Android Design Patterns – Budujemy z głową i dla ludzi a nie dla własnego dobra (community)

• Google Play – Jak to wygląda od strony Dev

• Xamarin Android Aplikacja - Przygoda

• Zadanie domowe - Rozdzielenie

• Ustalenie współpracy ze mną

Page 6: Workshop - Szkolenie Xamarin Android

XAMARIN?

“The best damn mobile team,building the best damn mobile platform.”

MY TEŻ TAK MOŻEMY

Page 7: Workshop - Szkolenie Xamarin Android

Mono?• Mono 1.0 was released on June 30, 2004

• “The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into native code and supports a number of processors: ARM, MIPS SPARC, PowerPC, S390 , x86, x86-64 and IA-64 for 64-bit modes.”

• Runs on Linux, OSX, Windows, PS3, XBox 360, Wii

•Windows Phone 7 i 8 + Android + iOS

Page 8: Workshop - Szkolenie Xamarin Android

Jak działa Mono?Pamiętajmy o certyfikacji :

Apple ma duże restrykcje

Pamiętajmy o certyfikacji : Google ma

duże możliwości

Pamiętajmy o certyfikacji : Windows ma duże pretensje że wógle coś wrzucasz na Sklep

Page 9: Workshop - Szkolenie Xamarin Android

Struktura - CorePiszemy tylko kod (core code) RAZ, możemy

skupić na dopasowawniu do UI danego systemu operacyjnego.

Page 10: Workshop - Szkolenie Xamarin Android

xamarin.mobileKomponent dla wykorzystania do loklaizacji, zdjec

czy dostepu do kontaktow dla wszystkich platform.

Page 11: Workshop - Szkolenie Xamarin Android

xamarin.SocialKomponent dla wykorzystania do App.Net, Twitter,

Facebook, and Flickr

Page 12: Workshop - Szkolenie Xamarin Android

xamarin.authKomponent dla wykorzystania do OAuth.

Page 13: Workshop - Szkolenie Xamarin Android

DataRestSharp, SQLite.NET, and JSON.net to nie które rzeczy które programista wykorzystuje w pracy.

Page 14: Workshop - Szkolenie Xamarin Android

Komponenty Androida czyli jak żyć na Google

PlayOmówienie zasad projektowania od zera javy

do .net codera. Android to jakieś 11000 urządzeń do wsparcia.

Obecnie jest wersja APK 19 – my piszemy od APK 11.

Page 15: Workshop - Szkolenie Xamarin Android

Linux Kernel

Application Framework

Applications

LibrariesAndroid Runtime

Linux Kernel

• Work as HAL (Hardware Abstraction Layer)

• Device Drivers

• memory management

• Process Management

• Networking

Libraries

• C/C++ Libraries

• Interface through Java

• Handling User Interface

• 2D/3D Graphics

• Media Acces, Browser Engine, SQLite

Android Runtime

• Dalvik Virtual machine

• .dex file

• Compact and Efficient

• Limited memory & Power

• .java -> .class -> .jar -> .dex

• Core Libraries

• Java Standard Edition

Application Framework

• API Interface

• Activity manager

• Content Providers

• Location Manager etc

Applications

• Built in and User application

• Can install using .apk files

• Example: Phone Dialer, WeChat, Web Browser, Hello Android or others

Architecture of Android

Page 16: Workshop - Szkolenie Xamarin Android

Android SDK

Page 17: Workshop - Szkolenie Xamarin Android

Android Application Life Cycle

Starting

Running

Stopped Paused

Destroyed

onCreate()onStart()

onSaveInstanceState()onPause()

onDestroy()onDestroy()

onRestart()onStart()

onResume()

onSaveInstanceState()onStop()

onResume()

Page 18: Workshop - Szkolenie Xamarin Android

iOS (iPhone) Android OS

One version for all devices Customized System by Manufacturer

Operation System (Graphic Design)

Fol

ie 1

8

Design Patterns

Page 19: Workshop - Szkolenie Xamarin Android

iOS (iPhone) Android OS

Application Hardware/Application

1 System Button 3-4 System Buttons

Navigation

Fol

ie 1

9

Design Patterns

Page 20: Workshop - Szkolenie Xamarin Android

iOS (iPhone) Android OS

Software HardwareSystem feature – 4 Buttons

Navigation - Back Button

Fol

ie 2

0

Page 21: Workshop - Szkolenie Xamarin Android

iOS (iPhone) Android OS

3 Devices 1000+ Devices

2 Display resolutions/sizes Different screen sizes (3,7’ – 10,1’) Different resolutions

Display Size/Resolution

Fol

ie 2

1

iPhone iPod iPad

Page 22: Workshop - Szkolenie Xamarin Android
Page 23: Workshop - Szkolenie Xamarin Android
Page 24: Workshop - Szkolenie Xamarin Android
Page 25: Workshop - Szkolenie Xamarin Android
Page 26: Workshop - Szkolenie Xamarin Android

Android SDK emulator ->

<- Genymotion emulator

Page 27: Workshop - Szkolenie Xamarin Android

What’s inside an App ?

Drawable Layouts Values Assets

Android Manifest

Default Activity

Content

Service

LibrariesDefault Activity

Default Activity

Other Activities

Android Application

Page 28: Workshop - Szkolenie Xamarin Android

Anatomia Xamarin Android app

Page 29: Workshop - Szkolenie Xamarin Android

Android Manifest.xml

Page 30: Workshop - Szkolenie Xamarin Android

Edit App Name & Package, Icon, Version #, Min and Target Android SDKs, Permissions

Page 31: Workshop - Szkolenie Xamarin Android

specify supported screens

http://developer.android.com/guide/topics/manifest/supports-screens-element.html

Page 32: Workshop - Szkolenie Xamarin Android

Pro tip: need for speed

You can specify hardware acceleration for the app or for specific activities.

http://developer.android.com/guide/topics/graphics/hardware-accel.html

Page 33: Workshop - Szkolenie Xamarin Android

More activity options

http://developer.android.com/guide/topics/manifest/activity-element.html

Page 34: Workshop - Szkolenie Xamarin Android

Activities

Page 35: Workshop - Szkolenie Xamarin Android

Activity Lifecycle

Page 36: Workshop - Szkolenie Xamarin Android

lifecycle in use

Page 37: Workshop - Szkolenie Xamarin Android

another example

OnResume and OnPause are good placesto do assignment and release.

Page 38: Workshop - Szkolenie Xamarin Android

declaring activity behavior

In this case, InitialActivity is our splash/loading screen.

Page 39: Workshop - Szkolenie Xamarin Android

layouts

Page 40: Workshop - Szkolenie Xamarin Android

Anatomy of a layout

Page 41: Workshop - Szkolenie Xamarin Android

includes

Page 42: Workshop - Szkolenie Xamarin Android

layouts for orientations

By creating a directory “layout-land,” Activities will use this as content when orientation changes.http://docs.xamarin.com/guides/android/application_fundamentals/handling_rotation/

Page 43: Workshop - Szkolenie Xamarin Android

layouts for screen sizes

“layout-large” is for Android apps below API-13, “layout-swXXXdp” is for 13 and above.

Page 44: Workshop - Szkolenie Xamarin Android

How layouts are connected to your code

Page 45: Workshop - Szkolenie Xamarin Android

Strings.xml

Page 46: Workshop - Szkolenie Xamarin Android

How to connect strings.xml to your code

You can link via layout xml or use “GetString” from your

Activity.

Page 47: Workshop - Szkolenie Xamarin Android

string array

This can be used as a data provider for a spinner.

Page 48: Workshop - Szkolenie Xamarin Android

Style.xml

Page 49: Workshop - Szkolenie Xamarin Android

declare reusable styles

Page 50: Workshop - Szkolenie Xamarin Android

Units of measure

pxPixels - corresponds to actual pixels on the screen.

inInches - based on the physical size of the screen.

mmMillimeters - based on the physical size of the screen.

ptPoints - 1/72 of an inch based on the physical size of the screen.

dpDensity-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen

Page 51: Workshop - Szkolenie Xamarin Android

Connect style to view

Page 52: Workshop - Szkolenie Xamarin Android

Drawables

Page 53: Workshop - Szkolenie Xamarin Android

Using a PNG

PNGS FOR STATES

Page 54: Workshop - Szkolenie Xamarin Android

vector drawable

Page 55: Workshop - Szkolenie Xamarin Android
Page 56: Workshop - Szkolenie Xamarin Android

alternative drawables

Using folder naming conventions will tellAndroid what version of the drawable to use

Page 57: Workshop - Szkolenie Xamarin Android

MainApplication

Page 58: Workshop - Szkolenie Xamarin Android

sending intents

Page 59: Workshop - Szkolenie Xamarin Android

receiving intents

Page 60: Workshop - Szkolenie Xamarin Android

Create and assign adapter

Page 61: Workshop - Szkolenie Xamarin Android
Page 62: Workshop - Szkolenie Xamarin Android

FragmentsAndroid 3.0+

Page 63: Workshop - Szkolenie Xamarin Android

Set layout of Activity

Page 64: Workshop - Szkolenie Xamarin Android

init tab fragments

Page 65: Workshop - Szkolenie Xamarin Android

the fragment

Page 66: Workshop - Szkolenie Xamarin Android

fragment lifecycle

Page 67: Workshop - Szkolenie Xamarin Android

Fragments are important

Fragments promote code reuse.

Page 68: Workshop - Szkolenie Xamarin Android

custom views

Page 69: Workshop - Szkolenie Xamarin Android

Month Layout

Page 70: Workshop - Szkolenie Xamarin Android

Week Layout

Page 71: Workshop - Szkolenie Xamarin Android

notated cell

Page 72: Workshop - Szkolenie Xamarin Android

OnDraw

Page 73: Workshop - Szkolenie Xamarin Android

UpdateSwatches

Page 74: Workshop - Szkolenie Xamarin Android

Calendar month activity

Page 75: Workshop - Szkolenie Xamarin Android

Update calendar

Page 76: Workshop - Szkolenie Xamarin Android

Update week labels

Page 77: Workshop - Szkolenie Xamarin Android

when month events set

Page 78: Workshop - Szkolenie Xamarin Android

Updating cell swatches

Page 79: Workshop - Szkolenie Xamarin Android

Podsumowanie

Page 80: Workshop - Szkolenie Xamarin Android

- Android SDK w Xamarinie nie jest specialnie trudny ale trzeba mieć background z aplikacjami – dobrze znać ADB.

- Ilość urządzeń do przetestowania – o matko- ale da się dzięki usługą (TestCloud) czy (TestDroid)

- Emulatory są do bani. Testować na urządzeniu bo nakładki.

- Planować z głową swoj LayoutUX/Design

Page 81: Workshop - Szkolenie Xamarin Android

Zadanie Domowe