Technology Choosing Strategies for Web and Mobile ApplicationsPresentation Transcript
Technology Selection Strategies for Web and Mobile Applications Henry Sampson
Is this worth our time? What is the time?
Is this worth our time? Now, what is the time?
Is this worth our time? This is similar to our technology landscape today The internet is filled with tons of languages, frameworks and/or libraries to choose from
Is this worth our time? There are over 2000 High Level languages today [http://www.cs.man.ac.uk/~pjj/cs1001/software/node3.html#SECTION00033000000000000000]
Is this worth our time? Making such decisions are at the core of Software Development Difference between delivering on time and late Difference between going above or staying within budget
How are we making decisions today? Religious Affiliations Some are devoted to .NET Java Ruby Erlang Company Policy Knowledge and familiarity
Questions to Consider Who or why are you developing the application? Enterprise Personal Leisure/Fun Automation What problem are you solving? Content Security Communication Reporting Tracking
Questions to Consider How soon are you to finish? 1 week (prototype) 1 month (Patch) 1 year (Government Project) What SLA has been imposed on you? Reliability Availability Scalability What phones will run your application? (Mobile) What is your budget?
Key Decision Points (Mobile) Language Java (Android) J2ME Python Ruby Objective C (iPhone) Storage RDBMS: Apache Derby, Java DB, Floggy, SQLite, File: Records Management Store (RMS) Monitoring HTTP: more commonly used RMS
Case Study 1 MoTeCH
Requirements Develop a Maternal Health Software on top of OpenMRS (MoTeCH Server) J2EE Spring, Hibernate, Quartz, Maven, Tomcat Develop a mobile app that communicates with MoTeCH Server Data Entry Query Server
Technologies Used (Server) J2EE – Largely influenced by OpenMRS Spring: IoC, Transaction Management Hibernate: Persistence Framework Maven: Project Management MySQL: RDBMS Tomcat: Servlet Container Quartz: Scheduling EasyMock: Testing OpenXData: Mobile Data Entry
Technologies Used (Mobile) J2ME OpenXData: Mobile Data Entry Custom Serializer library for transporting objects to server
Case Study 2 myTXTbuddy
Requirements Develop online bulk messaging service Must be significantly faster than current desktop applications UI must be superior to current market offering
Technologies Used PHP: Front end marketing pages Sencha: Data Binding UI component jQuery: Front-end k3ts3 (beautification) J2EE Spring Hibernate Quartz GSON: JSON to Java Object Log4J: Logging Framework
Key Points You must meet your requirements before experimenting Consider the number of people using the technology – COMMUNITY Be Open-minded and not religious Not the best idea to choose new technologies for a new project. Experiment with different technologies in your leisure