Thank you for visiting! If you liked the site, please add a bookmark, else add a critical comment! Would you like to visit Greece? Traditional Greek flag This real estate site is only available in Greek! The holy mountain

Thursday, 14 July 2016

A technical review of Android development using Android Studio 2.1.2

Photo from the Keramikos ancient cemetery, Athens, Greece
This new post describes my findings while developing a small android 
sightseeing application of about 4 MB in size, targeting English 
speaking tourists already visiting, or planning to travel to Athens,
 Attica, Greece using android version 4.3 devices, or newer.

 
On the dark side the development environment is so rapidly changing, 
that after less than six months, half the code of the book I was reading
 was already deprecated!
Moreover one has to daily download hundreds of MB, to update,
 which can be sometimes distracting. The IDE is also too CPU demanding 
 and memory hungry, 8 GB or even more are recommended, when simulators are needed.
Editing the gradle settings for the specific project might save you from overheating
your CPU.  Please read your console output and edit accordingly, here is only an instance: 
 
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users
:# Gradle settings configured through the IDE *will override* 
# any settings specified in this file.
# For more details on how to configure your build environment visit 
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings. 
# Default value: -Xmx10248m -XX:MaxPermSize=256m 
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
 -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html
#sec:decoupled_projects 
# org.gradle.parallel=true 
 
Furthermore, one has to test each device screen size and android version separately at a time, 
having all handheld devices  available  is rather impossible, which may make development 
cumbersome and expensive. For one cannot upgrade the mobile or tablet OS to a newer version,
 unless one pays the higher (almost double) price of a Nexus device! 
 
On the bright side, the libraries and online services provided are extensive
 and effectively help the programmer to integrate mapping and calculating the distance, 
or route between two places. The documentation offers a basic skeleton of code samples
 to build upon, and naturally one has to search how to fit all pieces of the puzzle together.
 
All in all, the initial target of java seems not to be met, the doctrine write once run 
everywhere, is now not valid, since as far as I know, one cannot run the app on a traditional
 linux java virtual machine, such as Web OS of a  LG smart tv, 
 which I find rather disturbing.
 Such proprietary solutions are successful and bring up to now certainly big corporate 
profits, but I wonder whether and for how much longer in the future will the consumers
 and international organizations tolerate it.