O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
MedTech
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Chp8- Mobile Development
Mobile development best practices
1
Med...
MedTech
MOBILE APPLICATIONS STATE OF THE ART
2
Mobile Development
MedTech
10 Key Numbers to Know (2016)
• Users spend 90% of their time on mobile applications, in comparison with mobile we...
MedTech
Smartphones
• First mobile phone: 1983 by Motorola
• PDA: Personal Digital Assistant (PDA) in 1990
• Agenda, conta...
MedTech
Some Mobile Operating Systems
• Old generation
• Symbian (Nokia)
• Blackberry OS (RIM)
• Windows Mobile (Microsoft...
MedTech
Smartphones Market Share (2016)
6
Mobile Applications State of the Art
MedTech
MOBILE DEVELOPMENT SPECIFICITIES
7
Mobile Development
MedTech
Hardware Constraints
• When developing applications for mobile devises, some hardware
constraints must be taken in...
MedTech
Hardware Constraints
• Autonomy
• Avoid applications that spend a lot of unnecessary energy
• Use the "Energy Savi...
MedTech
Hardware Constraints
• Connectivity Problems
• Due to mobility, connectivity is limited
• Usage of 3G/4G networks,...
MedTech
Hardware Constraints
• Delicate Handling
• Delicate use of the touch keyboard, risks of typing errors, and very
un...
MedTech
User Experience
• Represents the behaviour, attitude and emotions of a user when he handles a
certain product, sys...
MedTech
Monetization
• The creator of an application can sell it via download platforms (App Store, Google
Play, …)
• But ...
MedTech
Monetization
• Advertisements
• As a banner or
• Profitable for developers who want to be known and have some reve...
MedTech
Monetization
• Freemium
• Offer virtual content for money
• Apple: in-app purchase
• Google: in-app billing
• Can ...
MedTech
CATEGORIES OF MOBILE APPLICATIONS
16
Mobile Development
MedTech
Native Applications
• Applications written in the programming language specific for a
particular platform
• Exampl...
MedTech
Web Applications
• Web sites adapted for mobile devices
• Accessible via the web browser of the mobile device
• Ac...
MedTech
Hybrid Applications
• Expose the content of existing web sites as mobile applications
• The web browser is no long...
MedTech
Cross-Platform Applications
• Developed using an intermediate language (such as JavaScript) that is not
native to ...
MedTech
USER EXPERIENCE (UX)
21
Mobile Development
MedTech
Mobile UX
• Mobile UX
• Perceptions and feelings of users before, during and after their interaction
with the mobi...
MedTech
Component 1: Functionalities
• Select functionalities that are relevant to the user
• Guidelines
• Offer functiona...
MedTech
Component 2: Information Architecture
• Arrange the content following a logical structure to help users find the
n...
MedTech
Component 3: Content
• Use several data formats (text, image and video) to offer information to
the user
• Guideli...
MedTech
Component 4: Design
• Visual presentation and interactive experience of the device
• Guidelines
• “Mobilize, don’t...
MedTech
Component 5: User Input
• The necessary effort to produce data should be minimised and should
not require both han...
MedTech
Component 6: Mobile Context
• The device can be used anywhere, anytime
• Take into consideration the changing envi...
MedTech
Component 7: Usability
• To which extent do all the previous components (information
architecture, design, content...
MedTech
Component 8: Confidence
• Degree of confidence and confort the users feel when using the
application
• Guidelines
...
MedTech
Component 9: Feedback
• How to draw the attention of the user and display important
information?
• Guidelines
• Mi...
MedTech
Component 10: Help
• Options, products and services available to assist the user when
handling the application
• G...
MedTech
Component 11: Social
• Content and functionalities enabling:
• Creation of a social participation
• Production of ...
MedTech
Component 12: Marketing
• Methods used for the users to find the application or site
• Factors encouraging the rep...
MedTech
KEY DESIGN PRINCIPLES
35
Mobile Development
MedTech
Design Principles
• Key principles that help you design a mobile application that satisfies
the best practices, mi...
MedTech
P1: Separation of Concerns
• Divide your application into distinct parts which functionalities overlap
the least p...
MedTech
P2: Single Responsibility Principle
• Each component or module must be responsible of only one
functionality or ch...
MedTech
P3: DRY (Don't Repeat Yourself)
• You must not duplicate a functionality in an application over multiple
modules
•...
MedTech
P4: Avoid Doing a Big Design Upfront
• If your needs are not clear, or if there are risks that the design will
evo...
MedTech
P5: Privilege Composition over Inheritance
• Classes should achieve polymorphic behaviour and code reuse by their
...
MedTech
But also…
• Use logical layers to "tidy up" your application's components
• Use design patterns, and be careful to...
MedTech
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
References
43
• Web Sites
• inoutput.io, Choosing the right mobi...
Próximos SlideShares
Carregando em…5
×

Mobile developement

1.931 visualizações

Publicada em

Mobile developement

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Mobile developement

  1. 1. MedTech Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Chp8- Mobile Development Mobile development best practices 1 MedTech – Mediterranean Institute of Technology CS-Web and Mobile Development MedTech
  2. 2. MedTech MOBILE APPLICATIONS STATE OF THE ART 2 Mobile Development
  3. 3. MedTech 10 Key Numbers to Know (2016) • Users spend 90% of their time on mobile applications, in comparison with mobile web • Users download an average of 8,8 applications a month • Increase of 5% in comparison with previous year • In Mai 2016, the average cost of installing an application is of $2,33 in Android (+93% comparing with previous year) and $1,46 on iOS (-3%) • 25% of the installed applications are never used • 26% of the installed applications are abandoned after the first use • 45% of mobile applications users do not appreciate their shopping experience, vs 47% for web applications users • An average Android application loses 77% of its daily active users in the 3 days following its installation, and 90% in the 30 first days • Among those who stop using an application, 30% can use it again if they are offered a discount, and 24% will do it if they are offered an exclusive content or bonus • 78% of companies use advertisement to increase applications downloads 3 Mobile Applications State of the Art
  4. 4. MedTech Smartphones • First mobile phone: 1983 by Motorola • PDA: Personal Digital Assistant (PDA) in 1990 • Agenda, contacts list, notepad • Synchronisation with a computer • Smartphone = Mobile Phone + PDA • In 2001 with Sagem • Boost in 2005 with the first iPhone, and the purchase of Android by Google • Mini mobile computer • Possibilité to download and install applications 4 Mobile Applications State of the Art
  5. 5. MedTech Some Mobile Operating Systems • Old generation • Symbian (Nokia) • Blackberry OS (RIM) • Windows Mobile (Microsoft) • Bada (Samsung) • Touch OS • iOS (Apple) • Android (Google) • Windows Phone (Microsoft) 5 Mobile Applications State of the Art
  6. 6. MedTech Smartphones Market Share (2016) 6 Mobile Applications State of the Art
  7. 7. MedTech MOBILE DEVELOPMENT SPECIFICITIES 7 Mobile Development
  8. 8. MedTech Hardware Constraints • When developing applications for mobile devises, some hardware constraints must be taken into consideration • Limited Memory / Slow Processor • Even though some new top-of-the-line devises can reach 3GB of RAM (even 4 for some phablets), most of them suffer from a long loading time • Avoid long and complex processing, greedy in memory • Limited Storage Capacity • Some very top-of-the-line devises (iPhone6S, Nexus 6P) have a 128GB disk capacity • But a lot of models have only 4GB of storage (most of them have 16GB) • You can think about storing in the cloud for example. 8 Mobile Development Specificities
  9. 9. MedTech Hardware Constraints • Autonomy • Avoid applications that spend a lot of unnecessary energy • Use the "Energy Saving" mode • Small and Changing Screen Size • Consider varying size from one device to another • Exploit all the available space in an optimal manner • Use responsive design (adaptable to the screen size) • Think about HMI that ease the navigation (a fixed header, usage of icons instead of words,…) 9 Mobile Development Specificities
  10. 10. MedTech Hardware Constraints • Connectivity Problems • Due to mobility, connectivity is limited • Usage of 3G/4G networks, which are paying • Think of an offline mode for your applications • Be careful with automatic updates • Slower Download • Because of slower internet connections, limited network latency and memory and processor capacities • Download speed is slower than computers • 80% of users don't want to use their mobile devises to navigate the web • 64% expect a web page to be available in 4s, when a smartphone displays it in an average of 9s • Use technologies that ease pages download, like exploiting the cache, or using CSS3 • Reduce the size of images, the number of files and the client-side processing 10 Mobile Development Specificities
  11. 11. MedTech Hardware Constraints • Delicate Handling • Delicate use of the touch keyboard, risks of typing errors, and very unpleasant for the user • Minimize the number of input fields • Favor pre-filled fields • Auto-complete, auto-correct,… • Invalid clicks, because of the FAT FINGER phenomenon • Be careful with the size and proximity of the clickable elements • think of a "Cancel" functionality almost everywhere • No hovering effect • Need for more links and buttons • Use conventions for mobile design, such as "swipe" of "shake" 11 Mobile Development Specificities
  12. 12. MedTech User Experience • Represents the behaviour, attitude and emotions of a user when he handles a certain product, system or service • Includes the practical, experimental and emotional aspects of human- machine interaction • Concerns • The utility • The ease of use • The efficiency • Subjective notion, as it depends on the concerned person • Dynamic notion, as it evolves constantly in time • Change in the circumstances of use • Change of the habits and trends 12 Mobile Development Specificities of the product
  13. 13. MedTech Monetization • The creator of an application can sell it via download platforms (App Store, Google Play, …) • But it is not the only way to monetize your application • Paying application • Classical way of monetizing an application • Very cheap applications (less than 1 dollar) have a lot of success • In general, 70% for the developer, 30% for the platform • The price varies depending on the OS • Certain users are reluctant to buy applications (esp. on Android) • Trial Version • Provide a limited version, that gives an idea to the user about the application • Well adapted for games • But, there is a maintenability problem for the developers 13 Mobile Development Specificities
  14. 14. MedTech Monetization • Advertisements • As a banner or • Profitable for developers who want to be known and have some revenus • Ads are generally pay per click: it's difficult to estimate the income • Ads can deteriorate the UX (slowness, click by mistake,…) • Ads must be well targeted • … and ads are really, really annoying… • Sponsoring • Encourage users to perform an action in exchange with a virtual good • Well adapted for games • The audience is well targeted, thus chances for earning money are bigger 14 Mobile Development Specificities
  15. 15. MedTech Monetization • Freemium • Offer virtual content for money • Apple: in-app purchase • Google: in-app billing • Can be implemented on a paid or free application • A quality application incites users to use it again and to buy some content • The virtual content must be worth its price • The experience must be limited, otherwise the user can be frustrated 15 Mobile Development Specificities
  16. 16. MedTech CATEGORIES OF MOBILE APPLICATIONS 16 Mobile Development
  17. 17. MedTech Native Applications • Applications written in the programming language specific for a particular platform • Example: Objective C / Swift for iOS, Java for Android, … • High performance and high reliability • Can access all device functionalities: camera, contact list, … • Can be used without any internet connection • But, development costs are high, because these applications are associated to a given platform, which means it must be re-written for other platforms 17 Categories of Mobile Applications
  18. 18. MedTech Web Applications • Web sites adapted for mobile devices • Accessible via the web browser of the mobile device • Accessible only on-line, without any installation • Any changes are applied only once, to the source web application, and all users see it • Need to make your web site "mobile friendly" for a better user experience • Usage of HTML, JavaScript, CSS… 18 Categories of Mobile Applications
  19. 19. MedTech Hybrid Applications • Expose the content of existing web sites as mobile applications • The web browser is no longer part of the user experience • The application is installed like any other native application • Publishable in the applications stores • Have more access to the device functionalities than web applications, but are still limited compared to native ones • Render the user interface using an embedded web browser • Wrapped inside a native application that uses a mobile platform’s WebView • You can think of the WebView as a chromeless browser window that’s typically configured to run fullscreen. • Most hybrid mobile applications leverage Apache Cordova (previously called PhoneGap) 19 Categories of Mobile Applications
  20. 20. MedTech Cross-Platform Applications • Developed using an intermediate language (such as JavaScript) that is not native to the device's operating system • Different from HTML5 Hybrid apps, as hybrid apps incorporate both some web and native code • Cross-platform development create pure native applications, but generated for multiple platforms from a unique code • Generally, a third party vendor chooses a programming language and creates a unified API on top of the native SDKs provided by the various OS vendors • Using this unified API, it is possible to support multiple operating systems with a single code base. • The third-party vendor generally provides an IDE (Integrated Development Environment) which handles the process of creating the native application bundle for iOS and Android from the single cross-platform codebase. • Examples: Xamarin (C#), NativeScript, React Native 20 Categories of Mobile Applications
  21. 21. MedTech USER EXPERIENCE (UX) 21 Mobile Development
  22. 22. MedTech Mobile UX • Mobile UX • Perceptions and feelings of users before, during and after their interaction with the mobile application • Need to rethink our acquired reflexes about the design of desktop applications • Consider: • The small size of the screen • The difference of functionalities between devices • Usage and connectivity constraints • The changing context • A set of key components of the mobile user experience have been defined 22 User Experience (UX)
  23. 23. MedTech Component 1: Functionalities • Select functionalities that are relevant to the user • Guidelines • Offer functionalities adapted for smartphones (ex: bar code reader) • Prefer functionalities that are used in a mobile environment (ex: geolocation) • Make sure that the fundamental functionalities are optimised for the mobile (ex: clic-to-call phone numbers) • Key functionalities must be available in all channels (application or web site) 23 User Experience (UX)
  24. 24. MedTech Component 2: Information Architecture • Arrange the content following a logical structure to help users find the necessary information easily • Guidelines • Prioritize according to the need of the user • Minimize the number of clicks, make each click useful • Use Mobile Design Patterns • Enable navigation for touch and non-touch screens • Ease the navigation: enable back button, home button,… • Use names that are clear, concise and descriptive for the links and navigation buttons 24 User Experience (UX)
  25. 25. MedTech Component 3: Content • Use several data formats (text, image and video) to offer information to the user • Guidelines • Offer an adapted and balanced content • Using a multimedia content can have added value, especially when the main goal of the application is entertainment or learning • Let the user have the control over the multimedia content: do not start a video or a sound automatically, for ex. • Make sure the content is appropriate for mobile devices (ex. image optimisation) • Make sure the content is presented in a format supported by the device • Some applications still ask iOS users to install Flash… 😒 25 User Experience (UX)
  26. 26. MedTech Component 4: Design • Visual presentation and interactive experience of the device • Guidelines • “Mobilize, don’t miniaturize” (Ballard) and “Don’t shrink, Rethink” (Nokia) • Maintain a visual consistency and originality (colour, typography and personality) to guarantee an immediate visual recognition of the brand • Design to remember the desired information at a glance • Define a visual flow: the main element of the application should guide you to the other functionalities • Consider both portrait and landscape modes 26 User Experience (UX)
  27. 27. MedTech Component 5: User Input • The necessary effort to produce data should be minimised and should not require both hands • Guidelines • Mobile forms should be efficient and concise • Offer a help to the user input (dropdown list, auto-complete,…) as frequently as possible • Offer alternative modes of input depending on the device (movement, camera, voice, geolocation, …) • Change the keyboard according to the input fields (ex. use an adequate keyboard for email addresses, or numeric keypad for numbers) • Consider the auto-correct suggestions (enable spell-check) 27 User Experience (UX)
  28. 28. MedTech Component 6: Mobile Context • The device can be used anywhere, anytime • Take into consideration the changing environment • Consider extremely inconfortable situations as much as extremely confortable ones • Guidelines • Use the characteristics of the device to anticipate the needs of the user in the context of the usage of the application • Offer the possibility to navigate with the voice to go through cooking recipes • Change the characteristics of the interface depending on the time of its usage • Switch automatically to the Night Shift for ex. • Use the user's location to display any proximity information • Use the default UI according to the device, and authorise improvements later 28 User Experience (UX)
  29. 29. MedTech Component 7: Usability • To which extent do all the previous components (information architecture, design, content,…) collaborate together? • Guidelines • Guide the user to what he should click on, select, or swipe • Target elements must be of an adequate size and well spaced • Target elements must be placed in adequate areas of the screen • Some areas, difficult to access, can be used for deletion • Reduce the learning curve by using conventions and patterns • Avoid using technologies that are not supported by all the platforms 29 User Experience (UX)
  30. 30. MedTech Component 8: Confidence • Degree of confidence and confort the users feel when using the application • Guidelines • Be careful to the security and respect of privacy • Do not collect and use personal information without authorisation • Let the user take control of the information he wants to share • Clearly point out your business practices by offering explicit links to security policies 30 User Experience (UX)
  31. 31. MedTech Component 9: Feedback • How to draw the attention of the user and display important information? • Guidelines • Minimize the number of alerts and optimise their content • Notifications must be brief, informative and easily deletable • Offer a feedback and confirmation without interrupting the user • If your application displays badges and notifications on the status bar • Keep them up to date • Delete them only when the user took notice of them 31 User Experience (UX)
  32. 32. MedTech Component 10: Help • Options, products and services available to assist the user when handling the application • Guidelines • Make the access to the help easy, in a distinguishable place • Offer several ways to get support • FAQ, calls, tweets,… • Offer a fast tutorial when first using the application • Offer a contextual help and advises to guide the user when the application introduces a new concept • Offer support videos when necessary, but give the user control over them 32 User Experience (UX)
  33. 33. MedTech Component 11: Social • Content and functionalities enabling: • Creation of a social participation • Production of user interaction • Sharing on social media • Guidelines • Maintain a presence in social media (facebook page for ex.) • Incorporate your social activities in your mobile application by showing your recent activities and offering an easy way to follow or like you • Enable users to easily connect to their social network via your application • Usage of provided APIs for sharing, tagging, liking and commenting • Invite users to generate content about your brand/company for a potential profit in return 33 User Experience (UX)
  34. 34. MedTech Component 12: Marketing • Methods used for the users to find the application or site • Factors encouraging the repeated usage of the application • Guidelines • Insure your visibility by optimising your site/application for mobile research • Offer a QR (Quick Response) code for your application • Promote your application on other possible channels (TV, posters,..) and offer promotions for its download/purchase • Ask users to grade and comment your application, and to share their opinion on social media 34 User Experience (UX)
  35. 35. MedTech KEY DESIGN PRINCIPLES 35 Mobile Development
  36. 36. MedTech Design Principles • Key principles that help you design a mobile application that satisfies the best practices, minimises costs and maintenance need, and help usability and extensibility • Separation of concerns • Single Responsibility Principle • DRY : Don't Repeat Yourself • Do not start with a big design upfront • Privilege composition over inheritance 36 Key Design Principles
  37. 37. MedTech P1: Separation of Concerns • Divide your application into distinct parts which functionalities overlap the least possible • Advantages • Optimisation of a module or functionality independently from the others • If a module fails, it doesn't impact the others • Makes the application easier to understand and design • Makes managing complex systems easier • Divide and Conquer 37 Key Design Principles
  38. 38. MedTech P2: Single Responsibility Principle • Each component or module must be responsible of only one functionality or characteristic • Advantages • Makes the components more cohesive • Makes the components' optimisation easier if a characteristic changes 38 Key Design Principles
  39. 39. MedTech P3: DRY (Don't Repeat Yourself) • You must not duplicate a functionality in an application over multiple modules • Advantages • Eases the implementation of changes • Increases clarity • Makes the code more consistant 39 Key Design Principles
  40. 40. MedTech P4: Avoid Doing a Big Design Upfront • If your needs are not clear, or if there are risks that the design will evolve in time, avoid making too much effort in the design at the beginning • Makes your design evolve with your application • Advantages • Helps you embrace evolving requirements • Avoid losing your morale at the beginning of the project • Proceed step by step 40 Key Design Principles
  41. 41. MedTech P5: Privilege Composition over Inheritance • Classes should achieve polymorphic behaviour and code reuse by their composition instead of inheritance if possible • Advantages • Inheritance increases the dependency between parent and child classes • Child classes' reuse is more limited • Reduces the inheritance hierarchy, which can be laborious • It is better to compose what an object can do (HAS-A) rather than to extend what it is (IS-A) 41 Key Design Principles
  42. 42. MedTech But also… • Use logical layers to "tidy up" your application's components • Use design patterns, and be careful to use only compatible ones in the same layer • Use abstraction to implement loose coupling between layers • Keep the data formats consistant in the same layer • Separate as possible non-functional code (security, logging,..) from business code • Be consistant in naming conventions • Establish your own standards to deal with exceptions 42 Key Design Principles
  43. 43. MedTech Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi References 43 • Web Sites • inoutput.io, Choosing the right mobile app for your project, http:// inoutput.io/articles/development/choosing-the-right-mobile-app-for-your- project-native-vs-cross-platform-vs-hybrid, consulted 10/04/17 • InfoQ, Pros and Cons of Cross-Platform Mobile App Development, https:// www.infoq.com/articles/mobile-cross-platform-app-development, consulted 10/04/17

×