My main responsibility for this project is the technical side of developing the application. I have decided to research all options available to us to ensure we choose the right option for our project. This post discusses both the research and the practical work I completed over the first three weeks of the Semester to help me properly understand our options with regards to application development. My work began with desk research and then began to evolve into getting hands on in an attempt to understand the tools that we have at our disposal.
Week One 28/01/2019
IOS Vs Android
This is a huge question that you have to considering when first developing an application and there are numerous factors to take into account. Demographically speaking iOS is a platform generally associated with more affluent users, it is the prominent platform in the US and it’s users and more inclined to spend money on applications. ( Teleman, Costi 2017 ) Android is the prominent platform in developing countries and amongst users who are spend money more consciously. Android is also much more prominent globally. (Katariya, Jayanti 2017)
“You have to consider the whole Android family-from low-range to mid- and high-range iterations when developing and designing your apps. ”
( Teleman, Costi 2017 ). Screen sizes and resolutions can be a difficult aspect of app development for Android because of the open nature system, many different brands and ranges of smartphones exist within the Android family as opposed to iOS which has a more standardised range of screen sizes and resolutions.
Development time is significantly shorter for iOS and hence it is much cheaper. iOS development requires a program called X Code which is only available on Mac. Android development can prove much more time consuming, it requires a program called Android Studio which uses Java and is available on Max, Windows and Linux. ( Teleman, Costi 2017 ).
It is generally agreed, from the resources I have read, that app development is easiIt is generally agreed, from the resources I have read, that app development is easier for IOS. Seeing as we have all got iphones and and ipad this would seem like the most sensible approach for us to take. App Development for IOS requires you to use the program Xcode and the scripting language SWIFT. The issue however lies within the fact that my laptop is a windows laptop, and as I am mainly in charge of the app development side of the project, this may cause an issue.
There are several solutions availible for this issue
- Use the Macs availible to me in college to complete the coding needed.
- You can pay for a service which allows you to remotely access a mac os from your PC and hence develop using said virtual OS. The fee for this service is 1 dollar an hour or 20 dollars a month. ”
Before committing to buying a new Mac, you can actually “rent” one for development. You’ll remotely access the Mac and Xcode through your PC. “(Ching, Chris 2019) - We could also use a program like phone gap which allows you to use HTML, CSS and Javascript to develop an application that works on both IOS and Android
Week 2 04/02/2019
Phone Gap
The first option I have looked into using for developing our application is the adobe program PhoneGap. This program allows you to use basic principles of HTML, CSS and Javascript to create an application suitable for both iOS and Android.
I found this software extremely easy to use however I found a slight issue in the fact that the PhoneGap developers app was removed from the app store by apple recently and the issue hasn’t yet been resolved. As I only have an iOS mobile device currently at my disposal I couldn’t test the application on an actual device, only on my browser.
Below is the link to the extremely simple application I created using this software. I created this app to gauge which software will be the best for us to begin to develop our final application.
Pros
- Applications can be exported to either iOS or Android
- Relies on HTML, CSS and JavaScript which I already have knowledge of
- Can use Cordova to access the functionality of the phone hardware
- Fast and efficient testing using the PhoneGap Developers App
Cons
- No UI widgets availible
- PhoneGap developers app not availible on iOS
Phone Gap Test Application
Tutorials Watched
- ‘Making your first Phone Gap Application’ by LearnToCode Become a Web or Mobile Developer https://www.youtube.com/watch?v=yWmWGwOjWKk
- Create your first app for free in Under 10 Minutes by TeachingTech https://www.youtube.com/watch?v=QxiSuslEIyc&t=50s
Week Three 11/01/2019
Android Studio
Now, although it is said that android development is slightly harder, it may be the solution to the issues with my laptop being a PC. Android development requires an application called Android Studio which can be used on Mac or PC. This would allow us to develop on any computer however we would have to display on an android device, which we are not currently in possession of. There are ways around that though such as using an android emulator or buying a cheap android device such as the lenovo 7″ tablet for around 50 euro.
I attempted to make a simple application in Android Studio Similar to the one I made in Phonegap However I really struggled with it. Android studio requires the programming language Java of which I don’t have any prior knowledge. to get a handle on Java I completed the code academy course on Java. I also found some manuals on learning Android Studio in the CIT library which would be useful if I were making a full application. I also watched some tutorials on Android Application Development.
Tutorials and Books Mentioned
- ‘Android Studio for Beginners, Part One’ Bill Butterfield https://www.youtube.com/watch?v=dFlPARW5IX8
- ‘Android Studio for Beginners, Part Two’ Bill Butterfield https://www.youtube.com/watch?v=6ow3L39Wxmg
- ‘Android Studio for Beginners, Part Three’ Bill Butterfield https://www.youtube.com/watch?v=rdGpT1pIJlw
- ‘Android Studio for Beginners, Part Four’ Bill Butterfield https://www.youtube.com/watch?v=bu5Y3uZ6LLM
- ‘Beginning Android Programming with Android Studio’ by
Jerome F. DiMarzio, acessed via CIT Library, 12/02/2019, URL : https://ebookcentral.proquest.com/lib/cit-ebooks/detail.action?docID=4714030
The main issue I forsee with using Android Studio is the complexity of Learning Java from scratch and understanding it well enough to be able to develop a full application using it. I can follow the tutorials and books aforementioned however I am just copying what hey are doing in the tutorial and I have a very minimal understanding of how this works. This would become a big issue when I am trying to implement our own application as there will be no direct tutorial to follow. I am not confident in my ability to transfer my knowledge of Java from a tutorial and apply it to our own project.
Pros
- Availible on Mac, Windows and Linux
- Free Software, plenty of online learning resources
- Would result in me havng a greater knowledge of Java
Cons
- Would require me to learn a whole new scripting language from scratch
- I have found Java very difficult up until this point and doubt my ability to transfer my learnings of onto our project
- Development Process would probably be more time consuming as I can only use a certain amount of the base knowledge I have as a result of my studies
- Development for One platform only
Xcode
Xcode development is much simpler and swift is an easier language to get an understanding of . The issue however is the fact that I could only develop for iOS by using a Mac or virtually renting one. As I will be putting a lot of work in both at home and in college into this project, it just doesn’t make sense for me to develop the application using a program I would essentially have to pay per hour of usage at home. So I basically have ruled out the use of Xcode for developing this application but it always there as a backup option it would just require me to use mainly the college computers.
Pros
- Straightforward Software
- Developing for a standardised screen size and resolution
- UI Widgets Available
Cons
- Can only develop on a Mac (either physical or Virtual)
- Requires learning swift, which despite being easier than Java is still a new scripting language
- Development for one Platform Only
- Requires us to display on apple device (more pricey)
Conclusions
I have decided to move forward and get into prototyping using PhoneGap. The pros of using PhoneGap far outweigh the cons. It will allow me to expand on the skills I have been learning over the past four years, I am comfortable coding in the languages required for using PhoneGap, the software allows you to develop for both Android and iOS platforms and this will allow me to prototype and test efficiently. After speaking to my supervisor and conducting all the above research we decided that this is the most sensible approach going forward for our project and I am happy with this decision.
Bibliography
Jayanti Katariya (2017) Apple Vs Android – A comparative study 2017 [online] Available from URL : https://www.moontechnolabs.com/apple-vs-android-comparative-study-2017/ [ accessed 02/02/2019 13:50]
Teleman, Costi ( 2017), Android vs iOS App Development: A Comparison and Decision Guide [online], Available from URL : https://dzone.com/articles/android-vs-ios-app-development-a-comparison-and-de [accessed 02/02/2019, 14:45 ]
CHING, CHRIS (2019), XCODE FOR WINDOWS (12 WAYS TO BUILD IOS APPS ON PC) [ONLINE] AVAILABLE FROM URL : HTTPS://CODEWITHCHRIS.COM/XCODE-FOR-WINDOWS/ [ ACCESSED 04/02/2019,
18:30]
Academic Paper Current Progress
