Model-View-Controller framework

When choosing a system architecture design framework for our app, we picked the Model-View-Controller model and we will explain the reasons behind that.

Historically MVC was the earliest example of Graphical User Interface design approaches since its introduction by Trygve Reenskaug  MVC into Smalltalk. It solved the problem of user control over large data sets. The idea was to create an illusion for the user that they control the data domain.

Screen Shot 2017-03-20 at 10.53.53

Figure 1. The original concept behind MVC

 Although originally developed for desktop software, MVC became largely popular for web/mobile applications architecture design.

What does MVC mean?

Model is the knowledge domain.

View is the visual representation of the model.

Controller is the link between a user and the system. Provides means for user input and produces means for user output.

MVC-basic

Figure 2. Basic MVC interaction diagram

This structure splits the architecture of an app into three interconnected parts, so that the internal representation of information and user representation of information can be separated.

For example, we can look at the Web from the MVC point of view. The model is HTML that communicates the knowledge to a user. The view is a CSS that makes the information readable and nicely represented. The controller is a browser that renders the HTML and CSS and produces an output and translates the user input into script code. From the evident statistics of the Web usage, we can conclude the MVC model works fine.

The pros of MVC

  • Simultaneous development. Because the components are separated, different teams can work with different components of an app without blocking the work of others. For example, development can be divided into back-end and front-end, whereas the latter do not need the server-side data structure to design the user interface and vice versa.
  • Reuse. Again, because of independent components, the components code can be easily reused in other applications.
  • Multiple views of a model. New features and business entities can easily fit into an existing pattern.

The cons of MVC

  • Learning different techniques. Developers have to be skilled in different technologies and multiple coding techniques.
  • Complex design pattern. Although the main concept is quite straight-forward, the structure of each component can get very bulky and complex.

We conclude that the MVC design pattern is aligned with our design and development core.

Screen Shot 2017-03-20 at 10.47.26

Figure 3. The NaviGap MVC design pattern

We have chosen to use Django python web framework because it is open-source, free and is targeted at highly-loaded database-driven applications. Django web framework is viewed as an MVC architecture. The Model is an object-relational mapper assisting connection between data python classes and a relational database. The View is a system processing HTTP requests and the Controller is the URL dispatcher. Also, we will be using AngularJs to extend the capabilities of declaring dynamic views in our mobile app.

In short, we have a layout of planned works to be done.

Process plan:

  1. Building RestServices using Django & DjangoRestFramework
  2. Building MobileApp
  3. Integration of AngularJS and Webservices
  4. Deployment

Using open-source frameworks and environments not only reduces our costs of production, but provides opportunities for collaboration, and expertise from the developers’ community.

NaviGap Development Costs

NaviGap Development Costs:

The primary factors that we see as influencing the development costs of NaviGap include:

  1. Monetisation Model
  2. Platform
  3. Functionality
  4. Design
  5. Research
  6. Developer

1.Monetisation Model

It would be easier and more straight forward to create an app that is simply sold for a fixed, upfront price as opposed to one with In-app purchases that will require continuous updating to the software. We have decided on a blend of models that will include in app purchasing therefore long term costs of development need to be factored in.

2. Platform: Android Or Apple

iphone mapIt is possible to build an app that is accessible on a number of devices: iOS (iPhone and iPad), Android, Windows Phone, the Web or one that can be used on all of them. The price of development will vary accordingly. At this stage we are only considering mobile apps however, and therefore our options are either Android or Apple. We have determined that our app is to reach a demographic of 18-25 years olds so JAMR researched which platform would best suit this.

Image from blog.mobiscroll.com.

Each one of the aforementioned platforms requires a particular programming language, different development environments and programming models based on platform-specific APIs. For example, developing applications for Android requires Java, while developing applications for iOS requires Objective-C. It is apparent that, if a company decides to support both Android and iOS platform, there is a constraint to maintain two versions of a single product: one version implemented with Java for Android and a second version implemented using Objective-C for iOS. Mobile cross-platform tools (CPTs) provide an interesting alternative to native development. Cross-platform tools aim at sharing a significant portion of the application codebase between the implementations for the different platforms. This can drastically decrease the development costs of mobile applications. (Willocx ,Vossaert , Naessens, 2016).

JAMR intends to use a CPT to generate an app for both IOS and Android.

 

3. App Types & Functionality

The technical specifications of the app will be the single biggest factor in its cost. App types down into the following four categories:

  1. Table/List – designed primarily to display a relatively simple collection of information
  2. Database – designed to allow users to find, sort, and display data from data sets
  3. Dynamic – designed to cooperate with other platforms and software via APIs.
  4. Games- designed to be dynamic and have advanced features.

The more complex the functionality, the expensive the corresponding development cost will be. Quotes will need to be solicited from multiple developers, however, JAMR plans to develop the app ‘in house’ using our teams software development skills thus reducing the cost of development.

 

4. Design:

The design is an important feature of the App, particularly in terms of attracting a user to the initial download since customers are attracted by an icon and/or design. Similarly, design can make them want to use the app more, NY Times 2015.

A compelling design generated from a proven design team with a consumer-tested portfolio, could be very expensive. JAMR need to budget and prioritise based on the young person target audience who potentially are very design sensitive, therefore priority will be given to a high end design.

 

  1. Market Research:

The traditional questionnaire survey incurs a great human and financial resource. Whereas an online survey system could immensely cut the costs of questionnaire printing and labour in terms of service fees for interviewers, travelling expenses and data entry fees with a fixed cost will be paid that includes questionnaire design fees, network expense and data analysis service fees.

Other advantages of web-based questionnaires are:

  • Automation and real-time access.  Analysis is easier, and available immediately.
  • Convenience.  Respondents can answer questions when they want.
  • No interviewer.  No influence from the interviewer, means less bias.
  • Target PopulationThe sample may prefer just online surveys.

Therefore, a web-based questionnaire could replace the traditional paper questionnaire with minor effects on response rates and lower costs, potential disadvantages being a lack of respondent cooperation in terms of internet uses receiving lot of feedback requests, and the lack of interviewer to clarify respondent queries could mean that data collected is less reliable. (Hohwü, 2013).

 

6. Developer: Freelancer vs Agency

Different apps vary widely in developmental cost and there are 3 basic categories of developers you can choose from:

  1. Freelancer – affordable option
  2. Small agency – specialists in specific areas
  3. Large agency – big brand guarantees

Clutch surveyed representatives from 12 leading mobile application development companies to determine cost ranges of building an iPhone app and the key variables of cost and found that the median cost  range is between $37,913 and $171,450, but could be as much as $500,000.

NaviGap however will be using JAMR’s ‘in house’ software developer on this project.

 

Hohwü, L., Lyshol, H., Gissler, M., Jonsson, S. H., Petzold, M., & Obel, C. (2013). Web-Based Versus Traditional Paper Questionnaires: A Mixed-Mode Survey With a Nordic Perspective. Journal of Medical Internet Research15(8), e173. http://doi.org/10.2196/jmir.2595