(ASP) Apps that Solve Problems Lesson

Apps that Solve Problems
A mobile app is a software application developed specifically for use on small, wireless computing devices, such as smartphones and tablets. Mobile apps have become part of everyone's day to day life. The most dominant operating system for mobile devices is Google-developed Android Apps and the Apple-developed iOS apps.
Developing a mobile app from scratch requires an experienced app developer. It requires considering the constraints and features of these devices such as battery power, features, screen sizes, and hardware specifications and configurations.
The most popular languages for developing apps are HTML5, Java, C/C++, Objective C and Swift. However, there are many platforms that simplify the process.
Explore the tabs in each of the activities below to learn the three main ways to implement an app for mobile devices.
Native Apps
A native application (native app) is an application program that has been developed for use on a particular platform or device. The mobile app requires download through a marketplace associated with the operating system, such as ITunes for Apple OS devices and Android’s marketplace for Android OS devices. The operating system for iOS devices is mainly Objective-C and Java for Android.
Examples of Native apps
Programming Languages for Native apps
- Java for Android
- C/Objective C for iOS
- C# for Windows
- Java for Blackberry
Advantages
Native apps are typically fast, reliable, and can access all the device’s hardware (camera, accelerometer, compass, etc.). Because of this increased performance, mobile games are usually built as native apps.
- Better performance
- Can store more data offline
- Can be featured and searched for in the app store
- Full access to the device’s hardware and OS features
- Implicit installation of an app to the device’s home screen
- The App Store handles purchase transactions on your behalf
- Security
Disadvantages
It is tied to the platform it is built for. An iOS app, for example, won’t run on an Android device without first re-coding the entire app to Java.
- It will run only on the specific platform.
- You are bound to those platforms supported methods of delivery
- Typically more expensive to build.
- Takes more time to build an app for multiple devices
- Your app must be accessed through the device’s app store for approval which can be lengthy and if your app generates revenue you must share a percentage with the store
Web Apps
Web app a web application or web app is a client–server software application in which the client (or user interface) runs in a web browser.
An “app” like this loads within a mobile browser, like Safari or Chrome, like every other website. Your audience doesn’t have to install a web app. Web apps do not need to have available space on their devices.
Examples
Programming Languages
Advantages
- Can be easily created with HTML(5), CSS, JavaScript
- You can use it with multiple platforms (iOS, Android etc.).
- Distribute them as a regular website: just send a link.
- In most cases web apps are less costly to develop.
- Worldwide Access via the same URL
- Always up-to-date
- No revenue sharing with the app store
Disadvantages
- It is not downloaded to your phone
- Cannot access it when the internet is down
- You cannot access hardware functions of the device (like camera, GPS etc.).
- Security in the cloud
- Slower
- Might not look the same on all browsers
- Cannot be found on the app store
- You have to build your own commerce model to generate revenue
Hybrid Apps
Hybrid apps are part native and part web. Like native apps, they live in an app store and can take advantage of the many device features available.
Like web apps, they rely on HTML being rendered in a browser, but the browser is the smartphone’s native browser.
Examples
- Amazon App Store
- Evernote
- Twitter
- Gmail
- Khan Academy
Programming Languages
- Combination of HTML, CSS, and JavaScript.
Advantages
- Adaptable to multiple platforms - Example Netflix
- Produced easily
- Less Costly
- Can be put on app stores.
- Open source development language
Disadvantages
- Not a good option for apps that are computationally intensive or require extensive access to low-level device functions.
- Slower than Native apps.
- Need scaling for all devices.
Apps are developed for different purposes
- promote an existing business
- make money
- entertainment
- social media
- education
- to solve a problem
- to make life easier
Apps for Good is a term for apps that are created to solve real world problems in our society. Explore the websites listed in the sidebar to learn more about the Apps for Good program and some of the apps created by students to solve problems.
[CC BY 4.0] UNLESS OTHERWISE NOTED | IMAGES: LICENSED AND USED ACCORDING TO TERMS OF SUBSCRIPTION