2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

108
跨平台行動應用程式 使用者介面開發 李易修 以Titanium Mobile為例 2011

Upload: justin-lee

Post on 28-Jan-2015

115 views

Category:

Technology


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

跨平台行動應用程式使用者介面開發

李易修

以Titanium Mobile為例

2011

Page 2: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

搜尋COSCUP2011

下載了沒?

Page 3: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

李易修 Justin Lee赫迅互動科技 使用者經驗架構師

Page 4: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

以下狀況是否有點眼熟?

Page 5: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://screenhog.com/blog/2009/07/17/idea/ by Chris Hendricks

我有個Idea要做成App

Page 6: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://screenhog.com/blog/2009/07/17/idea/ by Chris Hendricks

&

Page 7: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://screenhog.com/blog/2009/07/17/idea/ by Chris Hendricks

&

Page 8: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://screenhog.com/blog/2009/07/17/idea/ by Chris Hendricks

開發速度要快

Page 9: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 10: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

好短的時間!

Page 11: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Web App

HTML5+CSS+JS

尚可

沒辦法

技術

跨平台能力

使用者經驗

學習門檻

離線能力

整合性與功能

上架賣錢

Page 12: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Native App

技術

跨平台能力

使用者經驗

學習門檻

離線能力

整合性與功能

上架賣錢

Java, Objective-C等

最佳

最佳

Page 13: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

該選哪一個?Native AppWeb App

Page 14: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

兩全其美

Page 15: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

用熟悉的Web技術開發Native App

Page 16: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium Mobile

Page 17: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

開發流程

Page 18: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 19: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

願景

Page 20: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://www.flickr.com/photos/othree/4889443021/in/set-72157624717324004 Photo by Othree

大會手冊

Page 21: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 22: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 23: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 24: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 25: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 26: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 27: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Page 28: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

紙本手冊的特性

沒網路也ok資料詳細可做記號

無法更新無法搜尋不見得會帶

Good Bad

Page 29: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

設定期望

Page 30: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

讓會眾盡情享受活動,When&Where這種事就交給Mobile App。

Page 31: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Mobile App要做到

跨平台沒網路也ok資料詳細可做記號可更新可搜尋

Page 32: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 33: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 34: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

設計

Page 35: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

怎麼開始?

Page 36: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

先觀察

Page 37: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

https://picasaweb.google.com/lh/view?q=coscup&uname=lis186&psc=G&filter=1&imglic=creative_commons&face=false#5505105241165189650 Photo by iocy

趕場馬上要知道下個活動在哪

Page 38: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Photo by Othreehttp://www.flickr.com/photos/othree/4889441807/in/pool-1501134@N21/

網路不可靠

Page 39: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://www.flickr.com/photos/yurenju/4897741695/in/pool-1502528@N22/ Photo by yurenju

超大會議廳

Page 40: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Photo by D.K. CHOUhttp://www.flickr.com/photos/38664137@N07/4903778188/in/pool-1501134@N21/

座位表我的朋友和正妹坐哪裡?

Page 41: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

http://www.flickr.com/photos/timchen86/4890800578/in/pool-1502528@N22/ Photo by tim.chen

即時分享IRC,Plurk或是twitter

Page 42: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

環境

產品

活動

為使用情境設計

Page 43: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

使用情境可能隨時間改變

家中

App

找議題

會場

App

找場地

會議室

App

查詢資訊

活動前 找場地 聽講

Page 44: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

不同情境,期待不同

家中

App

找議題

會場

App

找場地

會議室

App

查詢資訊

怎麼找? 下一場是?位置在哪?

更多資訊

活動前 找場地 聽講

Page 45: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

不同情境,限制不同

找到哪裡? 邊走邊用 網路不穩定

家中

App

找議題

活動前

會場

App

找場地

找場地

會議室

App

查詢資訊

聽講

Page 46: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

情境 功能

‧顯示所有議程‧標記想聽的內容‧活動提醒...

Page 47: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

功能 UI與架構

‧顯示所有議程‧標記想聽的內容‧活動提醒...

Page 48: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

選一個裝置開始

Page 49: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

先SmartPhone後Tablet

基礎功能擴充功能

Page 50: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

先iOS後Android

320x480

240x320

480x800

480x854

1280x800

240x400

240x432

320x480

640x960

768x102

Page 51: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

遵守UI Guideline

Page 52: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

哪裡怪怪的?

Page 53: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

尊重不同OS的差異

Page 54: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 55: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 56: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發

Page 57: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium Mobile

Page 58: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium Mobile

‧Open Source (Apache 2.0)

‧支援平台: iOS, Android, BlackBerry(Beta)

‧開發平台: Mac OSX, Windows, Ubuntu

‧SDK: Titanium Mobile SDK 1.7.2

‧開發工具: Titanium Studio 1.04

Page 59: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發iOS應用程式仍然需要Mac

{

Page 60: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Javascript原始碼+素材

原生應用程式

Titanium API

Native API

JS to Native Bridge

Page 61: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

只須維護一套原始碼

Javascript原始碼+素材Titanium API

Page 62: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium Mobile的功能

Native User Experience

Native performance + Native UI

(tables, animations, gestures…etc.)

Multimedia

Camera, video camera,

streaming/device audio/video

Location-based services

Augmented reality, geo-location,

compass, native maps

Analytics

Custom analytics baked into every

application, track usage patterns

and adoption

Social sharing

Authenticated access to Facebook,

Twitter, Yahoo YQL.

Native email/address book

Titanium+Plus

Encrypted database, ecommerce,

ads, barcode scanners, custom

analytics, in-app purchase

Data

Local SQLite data store, web

services, lightweight key/value

store

Development tools

Create, test, and publish your app

using the same tools across

platforms

Page 63: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium StudioEclipse-based IDE

Page 64: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

helloWorld/ build/ android/ ... iphone/ ... CHANGELOG.txt LICENSE LICENSE.txt manifest README Resources/ android/ ... app.js iphone/ ... KS_nav_ui.png KS_nav_views.png tiapp.xml

專案架構

原生專案

起始檔

設定檔

android專用檔案

iphone專用檔案

原始碼和其他資料檔

http://wiki.appcelerator.org/display/guides/The+Application+Project+Structure

Page 65: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

var win = Titanium.UI.createWindow({ backgroundColor:'#fff'});

var label = Titanium.UI.createLabel({ text: 'Hello World!', textAlign: 'center'});

label.addEventListener('click', function(e){ Titanium.API.info('label clicked!');});

win.add(label);win.open();

Hello World!

Page 66: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

Page 67: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

‧所有的UI由Javascript建立

Page 68: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

‧所有的UI由Javascript建立

‧沒有DOM,不用JQuery

Page 69: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

‧所有的UI由Javascript建立

‧沒有DOM,不用JQuery

‧window相當於瀏覽器視窗

Page 70: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

‧所有的UI由Javascript建立

‧沒有DOM,不用JQuery

‧window相當於瀏覽器視窗

‧view相當於div

Page 71: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

給web開發者的祕訣

‧所有的UI由Javascript建立

‧沒有DOM,不用JQuery

‧window相當於瀏覽器視窗

‧view相當於div

‧事件處理同樣是用AddEventListener

Page 72: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

UI元件的使用

Page 73: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium.UI.TabGroup

共有的元件

Page 74: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

特有的元件Titanium.UI.iPad.Popover

Page 75: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

模擬特有的元件TabbedBar Button

Page 76: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

區分不同裝置

Titanium.Platform.osname//iphone, ipad, android

Titanium.Platform.version

Page 77: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

為不同螢幕最佳化

Page 78: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

解析度(Resolution)

320x480

240x320

480x800

480x854

1280x800

240x400

240x432

320x480

640x960

768x102

Page 79: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

密度(Density)

http://www.engadget.com/2010/06/22/iphone-4-review/

Page 80: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

為不同螢幕準備素材

normalretina hdpi

Androidmdpi

ldpi

iOS

Page 81: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

從大做到小

Page 82: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

注意可讀性

Page 84: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

長度單位var view = Titanium.UI.createView({width: 100, //Pixelheight: '100dp',//Density independence});

win.add(view);win.open();

Page 85: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

考慮大螢幕能做什麼

Page 86: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

處理不同方向Titanium.Gesture.addEventListener('orientationchange', function (e) { switchLayout(e.orientation); });

Page 87: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 88: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 89: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

測試

Page 90: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

不要只靠模擬器

Page 91: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

模擬器測不出...

Page 92: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

記憶體不足

Page 93: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

肥手指問題

Page 94: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

多測不會錯

Page 95: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 96: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 97: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

發佈

Page 98: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

上架等待時間

10天 數小時

Page 99: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

iOS先行

iOS

Android

開發 審核 上架

開發 上架

Page 100: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 101: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 102: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 103: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 104: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 105: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

開發 測試 發佈設計願景

Page 106: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

快速上手+原生+跨平台

Titanium Mobile

Page 107: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

Titanium Mobile全日體驗營

8/27http://ti.herxun.co

Page 108: 2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例

COSCUP2011by Justin Lee

謝謝!