More Related Content More from Harbinger Systems - HRTech Builder of Choice (20) Best Practices in Mobile App Development3. Agenda
• Who we are?
• Our experience in this space
• What you need to excel as app developer?
• Why we need best practices?
• Realties of native mobile app lifecycles
• Best practices for
– Conceptualization
– Development
– Testing
– Submission
• Connecting the dots
• Q&A
• Tools for Troubleshooting Mobile Applications
Copyright © Harbinger Systems www.harbinger-systems.com 3
4. Who we are?
Group companies:
Harbinger Systems
• Your Partner in Technology Innovation
• Leading provider of software engineering services to world’s best product
companies
Harbinger Knowledge Products
• Innovations in Interactivity
• Global Leader in interactivity solutions for knowledge-sharing applications
Harbinger Group
Over 22 years of global operations
Team of 500+ professionals
Services and customer base in 57+
countries
Offices in Pune (India), Redmond
(USA), Pleasanton (USA), London (UK)
Copyright © Harbinger Systems www.harbinger-systems.com 4
5. Our experience in this space
An Established Mobility Practice
Enterprise and consumer app development for variety of
industries
– Publishing, eLearning, Healthcare, Retail, Travel, Social, Gaming
Mobile development skills across a range of platforms and
technologies
– iOS, Android, Blackberry, Windows Phone 7, Symbian
Offline Content Player for mobile platforms
4+ years of experience in building mobile apps
Demonstrated expertise of building 50+ mobility solutions
Customers ranging from start-ups to market leaders
Copyright © Harbinger Systems www.harbinger-systems.com 5
6. What you need to excel as app developer?
• Rapid development and faster time-to-market using Best Practices and
Accelerators
• End-to-end development expertise
– Conceptualization to app store publishing
– Client app development to service layer development and/or integration
• Proficient User Experience (UX) team
• Experience in developing and integrating enterprise products and
consumer internet applications
Product Experience Best Practices, Accelerators
UX TeamTech Incubator
Advanced Testing
Capabilities
Server Side
Expertise
Copyright © Harbinger Systems www.harbinger-systems.com 6
7. Click to edit Master title style
BEST PRACTICES
Achieving an optimized app development timeline without compromising
on quality
8. What is the need?
Copyright © Harbinger Systems www.harbinger-systems.com 8
Mobile apps have become one of the key enablers for any
product or service
Time to Market is Important
- First mover advantage
- Catch up with leaders
- Grab the seasonal demand
Device and platform diversity continues with greater intensity
Controlling Cost is Essential
- Make smart decisions and spend judiciously
- Avoid overruns and recurring costs
Increased user expectations have set a new bar
Delivering and Maintaining High Quality is Crucial!
9. Realities of native mobile app lifecycle
Ideation Conceptualization Development Testing Submission Distribution
Next version
45-60 days for core application and 15-20 days for updates
70-80 days for core application and 25-40 days for updates
However market research indicates…
Copyright © Harbinger Systems www.harbinger-systems.com 9
Simple App - $4,000 – $10,000
Moderate App - $10,000 – $50,000
Complex App - $50,000 or more
10. Ideation Conceptualization Building Testing Submission Distribution
How can you achieve an optimized
product timeline without compromising
on quality?
Copyright © Harbinger Systems www.harbinger-systems.com 10
11. Conceptualization
Converting your ideas into tangible forms
1. Know your users
• Don’t go overboard in supporting platforms/devices
• Decide right user experience (UX)
2. Rapidly build application mock-ups with workflows
• Finalize application workflows and interfaces early
• Honor platform specific UI guidelines
• Use rapid wireframing tools like Balsamiq, MockFlow
3. Plan data exchange
• Decide roles of server and mobile app
• Plan on protocols (REST or SOAP, JSON or XML)
4. Go for Layered approach instead of Monolithic
• User interaction: Native UI controls, 3rd party libs, HTML5
• Business logic: Core app logic using classes and controllers
• Data Access Layer: Network services and databases
Get clarity on how the app would work and understand
issues and bottlenecks in early stages to save rework
Copyright © Harbinger Systems www.harbinger-systems.com 11
20%
12. Development
Convert the tangible artifacts into executables
5. Think smarter
• Consider the limitations of platforms/devices/networks and
follow related guidelines while you design
• Build and use common Libraries for app families
• Use frameworks like PhoneGap, RhoMobile, Corona 2D for
multi-platform apps
6. Don’t hesitate to use Design Patterns
• MVC and Template patterns will save effort duplication
• Factory method provides better decoupling
7. Don’t compromise on code quality
• Use static analysis tools like StaticAnalyzer (XCode), Jupiter
(for Eclipse)
• Version control add-ons like AgileReview, Crucible (by JIRA)
8. Be Test Ready
• Use Unit test frameworks like SenTesting Kit, JUnit
• Implement ‘One Click’ build automations (JMeter, Jenkins)
These tips will make the code maintainable, detect bugs in minimum
cycles and automate tasks - all of which will save considerable time
Copyright © Harbinger Systems www.harbinger-systems.com 12
40%
13. Testing
Ensure that the app is usable and secured
9. Automate
• Wherever possible automate the testing, prefer cross-
platform solutions.
• UI testing using Instruments, FoneMonkey
• Data validation testing using TestLodge and TestRail
• Implement ‘On Field’ crash reporting service (Custom, JIRA)
10. Test Rapidly and Aggressively
• Automation helps in rapid functional testing
• Use combinatorial testing methods to increase efficiency of
testing on variety of network types, form factors, resources
11. Don’t forget Security
• For Android use Package Play, Manifest Explorer, Intent Sniffer
and Intent Fuzzer
These testing techniques ensure superior quality in a short span of time
and reduce the need for bug patches.
Copyright © Harbinger Systems www.harbinger-systems.com 13
25%
14. Submission
Make your app available through publishers
12. Ensure your app does not have these
• Compilation warnings
• Duplication of native features and controls
• Incorrect user notifications
• Over usage of native memory
• Redirections to web pages
• Improper app description
in addition to many other common rejection reasons
13. Understand the review process
• Honor the Human Interface Guidelines – Display,
gesture, orientation, consistency, aesthetic integrity
and feedback
• Carefully complete the submission documentation
• Produce artifacts needed by reviewer
Being prepared will significantly improve the chances for one shot approval
Copyright © Harbinger Systems www.harbinger-systems.com 14
15%
15. Following these best practices, you can achieve nearly
30% reduction in development time and cost without
compromising on the quality
Simple App : $4,000 – $10,000 $2800 – $7000
Copyright © Harbinger Systems www.harbinger-systems.com 15
Connecting the dots
Ideation Conceptualization Development Testing Submission Distribution
Next version
16. Thank you for attending the Webinar!
Contact us at hsplinfo@harbingergroup.com for more information
www.harbinger-systems.com
Pune (India), Redmond (WA, USA), Pleasanton (CA,USA), London (UK)
17. Tools - Troubleshooting Mobile Applications
http://blog.harbinger-systems.com/2011/02/trouble-shooting-mobile-applications/
Copyright © Harbinger Systems www.harbinger-systems.com 17
Comprehensive list of tools to help you troubleshoot your apps
Editor's Notes Source: www.mobilecastmedia.com UX - You must design and develop a user experience that is useful, usable, and desirable and that takes into account the mobile context.Interactive layer – Handling display, orientations and eventsBusiness logic – Models, Controllers, helpers, ManagersData access Layer – Services, wrappers. These talk to external entities. Such as DB, Network or any other application or service. In a multi-tasking environment, remember to release used resources or functionality for other applicationsFundamental patterns – Template method, Factory method, categories and extensionsPatterns for decoupling – Singleton, Notification, Delegation, Prototype, DecoratorsPatterns to hide complexity – Clusters, Façade, Managers, Controllers (MVC)Common libraries – DAL and UI. Configurable for any data model.Save time by One click automation of Creating debug/release builds, code sign, assigning version, upload network environments (using Charles)Give attention to business use casesAutomate device specific test cases, using TestLodge and TestRail.Automate performance testing using UIAutomationAutomate integration testing by timely scheduling unit test case executionInclude crash reporting to automate bug identification and triaging.On field reporting - like JIRA based JMC Faster app approval process – 20hrs to complete the process!Submission documents - – business requirement, category, search tags, pricing models etc.