Athlone Store – Android Application Linked with Server
Introduction
Athlone Store is an Android based application that is linked with a Server. The App is based on a Client-Server architecture where the client caters to end users or buyers and the server is the admin part for managing the application data and relevant details. The client in this architecture is the Android App that is accessed by users or the buyers of various product offerings on the App. The buyers accessing the Android App can perform various activities on the Android App client that includes checking product categories, searching products by name, browsing through the product catalog, view and evaluate the conditions for each product item. The main screen of the Athlone Store displays three items i.e. Product, Cart, and Checkout. Each of these items has their own significance. The product is a high-level item and on clicking the Product image Buyers can go to the next screen of the App where each of the product categories (Books, Camera, Computer, Fitness Equipment, Smartphone etc.) get displayed. On clicking any of the category further screens of product and product details come up
The flow of the App is very intuitive and it provides the user with the basic flow for viewing each of the product and their details. If Buyer wishes they can add any of the product into the cart through order detail section. Using the checkout section the Buyer can complete the order by filling their details like Name, Address, City, Country, Delivery Time, Phone Number, Email and Comments. There is a Contact Us section where a Buyer can send their queries, concerns or any message to the admin. During the flow of all screens on the App, there is always a Home menu that allows users to skip to any desired section. The admin section of the App allows an authorized administrator to add/delete Product categories, edit tax rate and edit the currency of payment and product information. All of these administrator related processes can be done through the PHPMyAdmin tool on the server side.
The Athlone Store App has been developed using Android SDK (Software Development Toolkit), Java programming language, XML, PHP and SQL technologies. PHPMyDomain is used for managing the server-side administration of the application and the database is hosted over Hostinger.UK application database host.
This report details the technologies used in the development of the Athlone Store App and their role at each stage of the App. The report also includes an acknowledgment of my lecture whose guidance and support enabled me to complete this App.
Acknowledgement
I would like to take the opportunity to acknowledge my lecturer who helped me in completing the Athlone Store App. At the start of the project, there were a lot of gray areas regarding the choice of technologies, the design of the App and actual decision of the architecture to follow. All this information and guidance was provided to me by my lecturer. My lecturer’s knowledge, vision, and support have been a primary factor in the success and completion of my project. Without his guidance and support, it was not only difficult but also impossible to complete my Android App. I extend my heartiest gratitude and regards to my lecturer for helping me achieve my goal.
Technology Research
JAVA
Java is a popular high-level programming language that enables software development for applications, mobile and smart devices, desktop computer, embedded devices and all kinds of thick and thin clients. Java is an Object Oriented Programming (OOP) Language that is robust and secure; it was first released in the year of 1995 by Sun Microsystems and recently acquired by Oracle. Java is a free and open source. Java has its own runtime environment for executing the Java programs, the runtime environment of Java is known as JRE (Java Runtime Environment) and Java has a set of APIs (Application Programming Interface) under its SDK (Software Development Kit). Another component of the Java platform is JVM (Java Virtual Machine) which is a specification for runtime environment to execute Java bytecode. JVM is responsible for verifying Java code, loading and executing the code into the runtime environment. JRE implements the JVM specifications and it consists of relevant libraries that JVM might require at runtime while loading/executing the Java code (for eg. rt.jar). JVM and JRE are platform dependent and rely on the implementation of the provider/vendor, although Java in itself is platform independent ("Android Tutorial").
JDK
JDK or Java Development Toolkit consists of development tools and the JRE. JDK consists of Java APIs for programming purpose and other necessary development tools and libraries that might be required or used by a Java developer. The current version of Java is Java8 and the latest JDK can be downloaded from the Oracle Java website (http://oracle.com/technetwork/java/javase/downloads/index.html). The instructions for installing JDK can be found on the Oracle website or inside the downloaded JDK. A typical JDK setup would require configuring the environment variables and PATH variable under the environment variables section of Windows properties. JDK can be integrated into some of the popular integrated development environments (like Eclipse and Android Studio) ("Android Studio Overview ").
Android SDK
Android SDK (Software Development Toolkit) is provided as part of the Android Studio for Android based development. The default language of programming for Android is Java and that is why one of the primary requirements of using Android Studio is JDK 8. Android SDK is an inherent part of the Android Studio suite that utilizes the tools available under the SDK. Android SDK consists of APIs (Application Programming Interface), sample projects, source code, an emulator for testing Apps and other relevant libraries and tools for developing Android based applications. Android SDK manager consists of packages and tools following android based development. The android SDK build tools enable building the android code develop and generating a relevant output file. Android manager allows selecting and updating different android packages. Android manager allows API installation for different android version. Android developers can also select various emulators for android devices, for example, Nexus emulator. The SDK manager also provides sample Android application code. It is important to install the SDK platform on the development environment. Android SDK provides support for complete mobile application development including support for animation, audio capture, Bluetooth, camera, clipboard, Facebook integration, Google maps and other developer tools ("Android Tutorial").
APK
APK or Android application package file refers to the executable file for installing an application on the android platform. APK files can be downloaded and installed or simply copied onto an android device and installed. APK files allow bypassing the usual process of installing an application from Google play store. The installation of APK file on an android device is simple but also unsecured as some APK file may consist of some kind of Malware (Malicious software) that could compromise the devices’ security. APK is an archive file consisting of files and directories and required libraries along with the compiled classes of the program files ("Android Tutorial").
Gradle
Gradle is a build management system that is based on Groovy. Gradle allows automatic download, a configuration of project libraries and supports repositories in order to retrieve the dependencies and also can reuse artifacts of an existing build system. A Gradle build can consist of one or more project and subtask where each task is a part of one project and a Gradle task represents some action that a build must perform for example generating Java code or compiling the source code. A project having Gradle build has a file with a .gradle File located in the root of the project folder. A Gradle build file consists of a combination of imperative and declarative statements. Gradle development has support in various IDEs like Eclipse, IntelliJ, and Android studio. Installation of Gradle is simple and it can be downloaded by parent website http://gradle.org. There are slight differences while downloading Gradle on different OS like Windows, Linux, and Unix. The android manager also consists of a plug-in for Gradle for managing the dependencies and building the logic files ("The Gradle Build System").
SQLite
SQLite is a self-contained minimum configuration server less transactional SQL database engine that is free for use either commercial or private. It is also one of the most deployed databases worldwide. SQLite is an embedded engine that uses disc files and is a complete database system with support for multiple tables, views, triggers, and indices. SQLite has a file format that can be used across any platform. It is one of the most reliable lightweight databases that are earned a high reputation. It is highly tested and verified with load disc I/O errors and less memory allocation failures. The transactions of SQLite database are ACID and atomic. The code base of SQLite is supported by a team of developers working full time. SQLite is open source relational database package that finds major use in android based applications due to its text file based data storage mechanism. The classes for SQLite under android have the main package of android.database.SQLite ("About Sqlite").
XML
XML or Extensible Markup language is a popular platform independent format for sharing and transferring data across the internet. XML is a lightweight markup language defining rules and format for document encoding. XML is a unique format that is both machine and human readable. W3C (World Wide Web Consortium) defines the standards and specifications for XML that are based on open standards. XML has an important role in developing and maintaining IT applications across different platforms. XML is a text-based document with a set of elements, tags, and attributes for storing and defining data. XML can be parsed or read based on xPath mechanism or a tree-structure based mechanism. Android SDK provides three different types of XML parsers that are SAX (based over xPath), DOM (Document Object Model) and XMLPullParser for parsing and reading XML documents ("Android Tutorial").
FileZilla
FileZilla is a cross-platform client for accessing FTP, SFTP and FTPS file locations over remote machines or networks. It provides a Graphical User Interface (GUI) for executing the commands. FileZilla supports SSH, SSL, and TLS transfer protocols, it can run on Windows, Linux and Mac OS X and other Operating Systems as well. It has support for multiple languages and IPV6 as well, supporting transfer and resume of large files (more than 4GB in size). Filezilla is designed to support a transfer of files between two remote machines. Filezilla supports all file operations over the remote server including upload, download, rename, delete, copy and move. Filezilla is a valuable tool for creating hosted applications and managing files over a remote server ("Filezilla - The Free FTP Solution").
PHP
PHP is a popular scripting language that is open source and widely used for web development and other general purpose programming and scripting activities. PHP code can be embedded into HTML and is executed on the server side. PHP is a simple programming language with easy to use constructs but robust enough to provide advanced level features as well for professional and enterprise level requirements.PHP can be used for server-side scripting, command line script without a need for browser or server or even creating desktop applications. PHP supports all major operating systems. PHP hosted applications can be connected through Java code to access PHP applications and perform relevant operations like connecting to a database.
SQL
SQL (Structured Query Language) is a construct of interacting with the database. SQL provides a querying structure to perform various operations on a relational database that includes Create, Read, Update or Delete operations. SQL is the most simple and native form of database querying mechanism. SQL queries can be executed directly on a database client or programmatically as well by connecting to the database through a database driver. Android uses SQL for querying remote databases through JDBC connectors using Java programming or directly over SQLLite database. SQL provides a variety of methods for interacting with the relational database that includes query joins, views, stored procedures, functions, and triggers.
Application Domain
PhpMyAdmin
PHPMyAdmin is a free tool created using the PHP programming language for connecting to a MySQL database instance and performing various administrative tasks including CRUD operations. PhpMyAdmin allows managing database tables, relations, columns, user permissions, indexes, and procedures. It provides a proper user interface for managing database tables and also supports direct execution of SQL queries. It has a proper documentation structure for help and support guidance supporting English and Spanish languages. PhpMyAdmin is part of FLOSS (Free Libre and Open Source Software) projects ("Phpmyadmin").
Parse (Notification)
Parse is a library available under Android studio that allows a host of functions including Push notifications. The parse library uses Google Cloud Messaging (GCM) for providing push notification services to be integrated and used in Android based Apps. The must first be connected to Parse to use notification services in Android and it works under Android Emulator as well. Parse allows to Push content to the desired App, including text, images, icons and URI. Parse provides developers a support for troubleshooting of notifications ("Parse").
Hostinger.Uk (Application Database host)
Hostinger is a Web Services Company established since 2004, it's a world leading organization in web hosting services with millions of customers under its portfolio. Hostinger claims to add 10,000 new client accounts every day worldwide. Hostinger is an ICANN accredited registrar with a strong financial base and robust domain hosting platform. Hostinger has been into United Kingdom operations since 2013.
For the Android Application, Hostinger services have been used to procure a hosted MySQL database solution. MySQL database can be installed through Hostinger cPanel using the advanced menu option under MySQL Databases section. The hostname for MySQL database is MySQL.hostinger.ph. Hostinger also provides a PhpMyAdmin tool for accessing and viewing/manipulating the MySQL Database instance.
Works Cited
"About Sqlite". Sqlite.org. N.p., 2016. Web. 9 May 2016.
"Android Tutorial". www.tutorialspoint.com. N.p., 2016. Web. 9 May 2016.
"Android Studio Overview ". Developer.android.com. N.p., 2016. Web. 9 May 2016.
"Filezilla - The Free FTP Solution". Filezilla-project.org. N.p., 2016. Web. 9 May 2016.
"Parse". Parse.com. N.p., 2016. Web. 9 May 2016.
"Phpmyadmin". phpMyAdmin.net. N.p., 2016. Web. 9 May 2016.
"The Gradle Build System". Vogella.com. N.p., 2016. Web. 9 May 2016.