03 - membangun aplikasi mobile berkualitas (herman tolle)
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
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 ?.
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
Prototyping Method
Idea
Design
Design Testing
Build Prototype
Prototype Testing
Design for Development
Implementation
TestingDeployment
Maintaining
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
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
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
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?
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.
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
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
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