1. Internet programming languages: Java server pages (JSP), Servlets, PhP, concepts of Internet Applications. 
  2. Concepts of Client-Server Architecture in internet applications
  3. Sockets, client-server, proxies and gateways, application programming.
  4. Process and threads & Inter-process Communication
  5. Message Formats and Techniques
  6. The Application Programming Interface - API
  7. Application protocols: SMTP, FTP, DNS and the Secure Shell
  8. Mobile application development: Languages, technologies and platforms

Lecture Notes

Mobile application development is a term used to denote the act or process by which application software is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications can be pre-installed on phones during manufacturing platforms, or delivered as web applications using server-side or client-side processing (e.g., JavaScript) to provide an "application-like" experience within a Web browser. Application software developers also must consider a long array of screen sizes, hardware specifications, and configurations because of intense competition in mobile software and changes within each of the platforms. Mobile app development has been steadily growing, in revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct app economy jobs within the EU 28 members, 60% of which are mobile app developers.

As part of the development process, mobile user interface (UI) design is also essential in the creation of mobile apps. Mobile UI considers constraints, contexts, screen, input, and mobility as outlines for design. The user is often the focus of interaction with their device, and the interface entails components of both hardware and software. User input allows for the users to manipulate a system, and device's output allows the system to indicate the effects of the users' manipulation. Mobile UI design constraints include limited attention and form factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts signal cues from user activity, such as location and scheduling that can be shown from user interactions within a mobile application. Overall, mobile UI design's goal is mainly for an understandable, user-friendly interface. The UI of mobile apps should: consider users' limited attention, minimize keystrokes, and be task-oriented with a minimum set of functions. This functionality is supported by mobile enterprise application platforms or integrated development environments (IDEs).

Internet programming languages

  • Java Server Pages (JSP)
  • Servlets
  • PHP
  • ASP
  • ASP.NET

PHP

PHP is a wide use general purpose scripting language which used to make dynamic interact web pages. It can embedded with HTML source document used in server side. Influenced by C, Perl, Java, C++, thus it support multiple paradigm in programming, such as object-oriented (OO) and imperative. In the meantime, its type system is loosing typing and dynamic type checking. As the updates of version, it supports more new features to make the PHP more functional and diversify. Now, the latest version is PHP 5.33, and will be used in the following.

 

Factors for choosing programming language for web apps development

  • Server platform (such as Windows or Unix-based OS)
  • Server software (IIS: Internet Information Services for Windows and Apache for Unix-based OS and other OS)
  • Programming experience
  • Budget of the project
  • Choice of database (SQL server, MySQL)

Client Server Architecture in Internet Apps

 

Sockets,

Proxies and Gateways

Application Programming

Process and Threads

Inter-process Communication 

Message Format and Techniques

Application Programming Interface (API)

Application Protocols

Mobile Application Development

  • Languages: 
  • Technologies
  • Platforms
When creating mobile apps factors to consider include
  • Platform
  • Use of hardware sensors: GPS, Accerelometer, and gyroscope
  • Security needs
  • Purpose of apps: Internal use, customer case, income generation
  • Data integration needs
Native app

Developer(s): You’ll need a developer familiar with the mobile platform programming language. Most platforms use different programming languages. Here are the programming languages required to create native apps for the most popular mobile operating systems.

  • Android - Java
  • Blackberry - Java
  • iOS - Objective-C
  • Windows Phone 7 - C#
Web app
  • Web designer: You’ll need someone who is familiar with HTML, CSS, and Javascript.
  • Web developer: If you want full web apps that connect to a back-end database and include business logic, you’ll need a web developer. Unlike native apps, you’re not limited to one development language. You can build mobile apps in whatever language you wish, like Java, PHP, Python, etc…
Decision towards choosing Mobile Web App Vs Native Mobile APP Development Approaches
  • If you want apps that work across multiple platforms, mobile web apps are a better option.
  • If you want apps that access the device’s camera or microphone, native apps are a better option.
  • If security is important, mobile web apps are a better option.
  • If you want to sell your apps, native apps are a better option.
  • If you want apps that integrate with existing systems and databases, mobile web apps are a better option 

References

https://www.cleverism.com/programming-languages-web-development/

 Review Questions

  1. Analyze four (4) different mobile programming languages for application development and provide design recommendations based on the nature of the problem to be solved.
  2. Describe down any three mobile programming languages used for application development
  3. Write a JSON data format for pizza order with customer information
  4. List down three world wide companies that have published their API. Describe why do they publish the API and list down any three API published by the companies
  5. Describe the TCP client/server interaction processes that happens from when the socket is opened to when it is closed
  6. What is a socket as used in internet programming
  7. Account for four types of social internet applications that would be appropriate for the client – server architecture
  8. What is the difference between thin client and fat client as used in internet application development
  9. Analyze the components of client server architecture for designing internet application.
  10. Write down JSP scripts/code used to authenticate a user when using electronic commerce information system, point out the names of the JSP pages involved, assuming that the database “mypet” has been created with a table “login” having fields id, username, password and level.
  11. Account for the design approach that one can adopt for the development of electronic commerce information system considering the interactions between the buyer and sellers representing at least four functions
  12. How does JavaScript differ from java server pages
  13. What makes Android Mobile OS popular as compared to other Mobile OS?
  14. Account for the top four mobile OS in terms of portability, reliability, Security and memory requirements
  15. What makes android and iPhone OS differ?
  16. Account for suitability of JSP as compared with other web programming languages
  17. Account for usefulness of Proxy server for web application development