03 - membangun aplikasi mobile berkualitas (herman tolle)

60
MEMBANGUN APLIKASI YANG BERKUALITAS BIMBINGAN TEKNIS ENTREPENEURSHIP DIGITAL (GAME & MOBILE APPS) Dr. Eng. Herman Tolle JURUSAN SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA 03 Grand Palace Hotel - Malang, 16-17 September 2016

Upload: lab-mobile-filkom-ub

Post on 13-Apr-2017

215 views

Category:

Small Business & Entrepreneurship


2 download

TRANSCRIPT

MEMBANGUN

APLIKASI YANG

BERKUALITAS

BIMBINGAN TEKNIS ENTREPENEURSHIP DIGITAL

(GAME & MOBILE APPS)

Dr. Eng. Herman Tolle

JURUSAN SISTEM INFORMASIFAKULTAS ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA

03

Grand Palace Hotel - Malang, 16-17 September 2016

Outline

• Start from Idea

• Development Phase

• Optimization & Testing

• Deployment Phase

• After Deployment

Simple & Unique

Fun & Addiction

Creativity

Kiichiro MutoMirai Education Japan

Mobile App Challenges

• Short development cycle, rapid changes, multiple form factors.

• Native, Web and Hybrid apps.

• Multiple devices and OS.

• Non functional – Security and performance.

• Backward compatibility.

• Popular mobile web browsers.

• Network.

• Graphics, Video, Audio.

• Memory usage.

• Usability .

• What is coming next ?.

Popular Applications

Think Big or Think Tiny…

CREATING MOBILE APPS

Development Team (Role)

• Project Manager

• Application Designer

• Mobile Programmer

• Application Tester

• UI/UX Designer

• Marketing

• Backend Admin / Operator

DEVELOPMENT & DEPLOYMENT

• Development: tahapan MEMBUAT APLIKASI mulai dariperencanaan, perancangan, implementasi dan testing padalingkungan terbatas: Design-Develop-Implement-Testing

• Deployment: tahapan pengembangan dan implementasi padalingkungan penggunaan sebenarnya hosting-upload-testing-publish

• After Deployment Acquisition-Retention-Revenue

Development Lifecycle

Prototyping Method

Idea

Design

Design Testing

Build Prototype

Prototype Testing

Design for Development

Implementation

TestingDeployment

Maintaining

Mobile app dev process

© 2013 MobiGnosis

DEVELOPMENTTAHAPAN PENGEMBANGAN APLIKASI

Type of Application

• Native App: dibuat, dikompilasi dan diinstalasi khususuntuk platform tertentu

• Web based App: dibangun dengan teknologi pembuatanweb: HTML, CSS, Javascript. Dapat bersifat CROSS PLATFORM

• Hybrid: gabungan Web + Native, dikembangkan denganteknik web tetapi dikompilasi menjadi app native

Platform Native Application

• Java ME (sebelumnya J2ME)

• .NET Compact Framework (C++, C#, VB.NET) for Windows Mobile

• Qualcomm’s BREW (C or C++)

• Symbian (C++)

• BlackBerry (Java)

• Android (Java)

• iPhone / iOS (Objective-C)

Teknologi Web utk Mobile App

• HTML5

• CSS3

• Javascript

• Jquery, Jquery Mobile, AJAX

• Data (Web Service): JSON, XML

• Localstorage: SQLite

• Hybrid Merubah menjadi native: PhoneGap

• 3rd Party Crossplatform: MoSync, Xamarin, Appcelerator (Titanium), Sencha, dll

Cost Development

Dalam mengembangkan sebuah aplikasi mobile harusmemperhitungkan biaya-biaya yang timbul dari komponen berikut:

• Hardware: Komputer development, mobile device

• Software: OS, development tools, SDK, Emulator/Simulator

• Pemilihan Platform

• Lisensi

• Dokumentasi & API

Android Development Tools

• OS: Windows, Linux, MacOS, etc.

• Java Development Kit (JDK)

• Development Tools (Emulator): Eclipse, Android Studio, Visual Studio, etc.

• Cross Platform Development Tools: Xamarin, Appcelerator, Unity3D, etc.

• Android Virtual Device: AVD, Genymotion

• Library: Google Map, Android TV, Wearable, etc.

• Hybrid: Phonegap

• Online Instant Dev Tools: iBuildApp, AppGeyser, Como

Lisensi

• Untuk menjadi developer aplikasi harus memiliki lisensi

• Ada yang free tetapi ada juga yang berbayar

• Andoid: lisensi android developer: US$ 25 (1x)• Publish app di play store

• iOS: Lisensi developer Apple: US$ 99 / year• Testing on device, publish to Apple Store

• Windows Phone: developer registration: US$ 99• publish 5 apps on Windows Store

• iOS University License (free) , Microsoft Student License

Dokumentasi & API

• Ketersediaan Dokumentasi dan API yang lengkap dan dapat diakses dengan mudah

Development Consideration

• Local atau Server-Based Data

• Internal atau External Access

• Pushing atau Pulling the Data

• Building atau Buying

Local vs Server Based Data

• Data disimpan di lokal perangkat ataukah disimpan di server?

• Akses data lokal lebih cepat dari akses data ke server

• Perhatikan kapasitas memori atau media penyimpanan pada perangkat

• Contoh aplikasi dg data lokal: Contact, E-Book Reader, Dictionary dg data lokal

• Aplikasi dg data di server: Dictionary dg data di server, social media

Internal vs External Access

• Proses dilakukan pada sisi perangkat pengguna (client) atau sisi server

• Contoh aplikasi dengan proses internal: kalkulator, penghitung kalori, edit foto, navigasi, dll

• Contoh aplikasi dengan proses eksternal: koran online, tv online, transaksi online shop, dll

Pushing vs Pulling

• Data di push (didorong) oleh server atau data di pull (ditarik) dari server

• Push: server secara otomatis mengirimkan data ke setiap client

• Pull: aplikasi client menarik data atas sebuah permintaan (button click, refresh)

• Contoh aplikasi dengan sistem push: aplikasi dengan notifikasi (chat, social media)

• Contoh aplikasi dengan sistem pull: online shop

Building vs Buying

• Mengembangkan aplikasi sendiri atau membeli aplikasi

• Outsourcing developer

• Mengembangkan dari template yang sudah ada sebelumnya

Build vs Buying Buy the same app only for $15

Design for Development

• Project Name

• Project Description: Tujuan, sasaran pengguna

• Application Architecture

• Functional Requirement

• Non Functional Requirement Reliability, Security, Usability, etc.

• DiagramsActivity, Sequence, Class

• Database Local or Server based (Web Services)

• User Interface: Color, Menu, Size, Position, Image, Icon, Graphics, etc

• User Experience: Interaction, Control, Respond, Notification

Mobile App Design Tips

• Learn from best app

• User Center Design

• User Experience

• Using Tools for make a mockup / prototype / wireframe / screen flow• JustInMind, FluidUI, inVision, etc.

• Using Android Material Design

QUALITY OF AN APPLICATIONOPTIMIZATION & TESTING

Bad Application

• Have you ever downloaded an app for your smartphone only to delete it a few minutes later? If you’re like millions of other users of mobile software, the answer is probably yes.

• But why is this such a common occurrence? And is there anything that can be done to curb the ever-rising tide of buggy mobile apps?

OPTIMIZATION & TESTING

Best Practices for Android / Mobile applications

Managing Your App's Memory

Improving Layout Performance

Optimizing Battery Life

Multi Threading

Performance Optimization

Resource Optimization

Android App Optimization

Significance of Mobile Application Testing

• Testing applications on mobile devices is more challenging than testing web apps on desktop due to

Different range of mobile devices with different screen sizes and hardware configurations like hard keypad, virtual keypad (touch screen) and trackball etc.

Wide varieties of mobile devices like HTC, Samsung, Apple and Nokia.

Different mobile operating systems like Android, Symbian, Windows, Blackberry and IOS.

Different versions of operation system like iOS 7.x, iOS 8.x, etc.

Different mobile network operators like Wifi, GSM, CDMA, 3G.

Frequent updates – (like android- 4.2, 4.3, 4.4, iOS-5.x, 6.x) – with each update a new testing cycle is recommended to make sure no application functionality is impacted.

Type of Mobile App Testing

1. Usability testing– To make sure that the mobile app is easy to use and provides a satisfactory user experience to the customers

2. Compatibility testing– Testing of the application in different mobiles devices, browsers, screen sizes and OS versions according to the requirements.

3. Interface testing– Testing of menu options, buttons, bookmarks, history, settings, and navigation flow of the application.

4. Services testing– Testing the services of the application online and offline.

5. Low level resource testing: Testing of memory usage, auto deletion of temporary files, local database growing issues known as low level resource testing.

Type of Mobile App Testing (2)

6. Performance testing– Testing the performance of the application by changing the connection from 2G, 3G to WIFI, sharing the documents, battery consumption, etc.

7. Operational testing– Testing of backups and recovery plan if battery goes down, or data loss while upgrading the application from store.

8. Installation tests–Validation of the application by installing /uninstalling it on the devices.

9. Security Testing– Testing an application to validate if the information system protects data or not.

Testing Ceklist

Usability Factor

•Effective

•Efficient

•Engaging

•Easy to Learn

•Error Tolerant

Mapping Usability to Design Tactics

Usability Requirement

• Kualitatif

• Kuantitatif

• Misalnya:

• Kualitatif: • Aplikasi harus mudah untuk membantu user menemukan restoran terdekat

yang terbaik sesuai lokasi pengguna

• Kuantitatif: • 80% pengguna merasa puas dengan aplikasi tersebut.• Tingkat usability > 80%

Usability Test

• Usability. Testers should also flag any usability concerns.

These may include:

• Text that is too small or difficult to read due to poor contrast (especially on lower-end devices).

• Buttons and links that are too close together, or too small to manipulate.

• Custom widgets and controls such as sliders or carousels that don’t work as expected.

Packaging Application for Release

• We finally made it. Our coding is done, we have an application icon, and it’s time to package the application for deployment. This involves a number of steps:

1. Building the application in release mode, and then signing our application for deployment.

2. Registering for the Android Market.

3. Publishing our application to the market.

Publish Application

• Android Developer: • Google / Android Developer ID

• Publish on play store: 25US$ once payment

• Sharing provit: 70% - 30%

• iOS Developer:• Apple Developer ID

• Testing on device & publish to app store: 99US$ / year

• Windows Developer:• Annual subscription: 99US$ to publish application on Windows Phone Store

Market Store

Kebutuhan untuk Publish

• Apk dalam mode release (alpha, beta, release)

• Deskripsi Aplikasi

• Image Screenshot Aplikasi (gambar aplikasi dan menu-menu yg ada)

• Maturity Level

• Icon-icon

AFTER DEPLOY GETTING REVENUE

TAHAPAN SETELAH DEPLOYMENT

ACQUISITION

ACTIVATION

RETENTION

REFERRAL

REVENUE

AKUISISI PENGGUNA

• Cari dan Kejar Calon Pengguna Anda

• Promote: Paid Arvertising

• Social Media: Facebook Ads

• Search Engine Optimazion (SEO)

• Search Engine Marketing

• Rating & Reviews

• Feedback

• App Store Optimazion

Parameter:• Download• Install• Page Visit• Site Visit

Strategi Khusus

• Instagram: Invite influential people to your beta launch

• Snapchat: Get your target customers buzzing

• Evernote: Get press attention

• Clear: Be unique. Be simple

• Camera+: Be aggressive on social

SUMMARY

IDEA DESIGN DEVELOP DEPLOY MAINTAIN

1. Simple or Great Idea2. Complete and Cool Design3. Develop with Quality 4. Deploy with Standard Testing5. Maintain with Always Update6. Acquisition to Revenue

IDEA APP v.1.0 TEAMBUSINESS

MODELINVESTASI

1. Valid Idea2. Make your first version3. Build a Team4. Create Business Model5. Go get Invest