Documente Academic
Documente Profesional
Documente Cultură
SantaSusanaHighSchool
DevelopinganAndroidApplication
SeniorProject2015
KyleAllen
11/20/15
CPEnglish
Period4
Allen2
ThegoalofthisprojectistocreateaneffectiveandwellmademobileAndroid
application.Thismeansmakingitsecure,usable,accessibleanduseful.Thiswillbe
doneusingmyskillsasaprogrammerusingprimarilytheJavaprogramminglanguage.
ThedevelopmentprocesswilltakeplaceoveraperiodofthemonthsIhaveinthe
schoolyearleadinguptothefinalpresentationthatIwillgivetolikelydemonstratethe
finalproduct,whichwillbethecompletedapp.Theresearchthatwillberequiredwillbe
lookingintoimprovingmyJavaskills,learninghowtomakeanappsecureandusable,
andfinallyhowtogoabouttheactualprocessofdevelopinganapp,i.e.whattoolsI
needtouseandhowtousethem.Theendresultwillbeausefulappthatmeetsthe
requirementsstatedpreviously.
IchosetocreateanAndroidmobileapplicationformyseniorprojectatSanta
SusanaHighSchool,firstlybecauseitisrequiredbyeveryseniortodoaprojectthat
intereststhem,aswellasthefactthatitisapossiblecareerpathformeinthefuture,as
wellasoneofmyinterests.Themainobjectiveinthisprojectwillbetoproducea
useful,wellfunctioning,secure,andfastAndroidapp.Therearemanyskillsand
knowhowrequiredtodosuchatask.Ipersonallyhavenoexperiencewithdeveloping
andaverysmallunderstandingoftheprocessofmakinganAndroidapplication
specifically,butdohavesomeknowledgefromothersimilarsubjectsthatwillindeed
helpmeinthisproject.SomeoftheseskillsincludeaverybasicknowledgeoftheJava
programminglanguage,aswellasXMLandhowtonavigateanumberofDevelopment
Environments.I,asstatedbefore,onlyhaveaminimalknowledgeofallofthis,sothis
willbequitealearningstretchforme,asIhavetolearntheskillsandconceptsof
Allen3
programmingthatpertaintothedevelopmentofamobileappontheAndroidOS.
CreatinganAndroidappisanelaborateprocessthatrequiresmuchdedicationandpersistence,
especiallywhenconsideringsecurity,speed,usability,andkeepinguptodatewithstandards.
Theworldofmobileapplicationdevelopmentisaquitecomplicatedone,atleastatfirst
glancetotheinexperienced.Whensmartphonesbeganfirstcatchingon,appswerenotyetahuge
thing.Ittookquitesometimeforthemtobecomepopular,itonlyreallyhappenedaround2010.
Butsincethen,mobileapplicationdevelopmentstartedbecomingaveryrapidlygrowing
industryandmarket,withthenumberofappsonallplatformsnearlydoublingbytheyear2013
andwithanestimated1.4devicesperpersonby2016(businessdegrees.uab.edu).Thisisa
telltalesignofhowboomingandpotentiallylucrativethemarketofmobileappdevelopment
alreadyareandwillbecome.
TherearetwopopularOSsdominatingthemarketrightnow,excludingWindowsPhone
andblackberry,whohavelessthanaboutalessthan6%shareinthemarket.ThoseOSsare
ApplesiOSandGooglesAndroid.iOShasaratherlargeshareinthesmartphonemarketwith
itsiPhone,alongwithallitsappsintheappstore.Androidhasanequallylargeshareinthe
mobileworld,andhasanappmarketthathasgrownexponentiallyinsizesinceitwas
Allen4
established,andiscurrentlythelargestappmarketofthemobileworld(zdnet.com).
ButwhatexactlyisAndroid,andwhatsetsitapartfromtherestofthemobilegiants.
Well,first,itwouldbebesttoexplainwhatAndroidisreallyabout.Androidfirstappearedinthe
mobilemarketonSeptember23rd,2008.ItisaunixlikeOSwritteninCandC++,andisbased
upontheLinuxkernel.Google,alongsidetheOpenHandsetAlliance,whichisaunionofphone
andchipsetmanufacturersthatcametogethertocreateanopenplatformforsmartphones,created
theAndroidmobileoperatingsystemin2008.ThephilosophyofAndroidiswhatsetsitapart
fromalltheothersmartphonegiants.Thatphilosophyisopenness,whichiswhytheAndroidOS
isopensource.ThismeansthatjustaboutanyonecancontributetothedevelopmentofAndroid,
itsapps,anditskernel.Thismaysoundtotheaveragepersonlikeadisaster,sinceoneperson
couldpotentiallymessupeverything,butthatiswhytherearestagingtools,aswellasthefact
thatthecodeissubjecttothescrutinyofmanymoreprofessionalpeoplewhowillalmost
certainlyfindtheproblembeforerelease.Opensourceallowsforbettercustomization,aswellas
Allen5
allowingfortheusersideastocometolife,insteadofonelargecompanymakingitby
themselves,withouttheinputoftheconsumer.Thisalsoallowsforasomewhatfasterandmore
efficientrolloutofupdates,sincetherearesomanydifferentpeopleworkingonitatonce.
TherearealsoalargenumberofotheraspectsthatsetAndroidapartfromtherestandput
thematthetop.Firstly,Androidis,despitepopularbelief,quitesecure.Ithasmanytechnologies
availablethathelpmakeitsecure,suchasencryptedfilesystemstoprotectdataandthingssuch
asASLR,OpenBSDdlmalloc(amemoryallocator),NX,safe_iop,andProPolicetohelp
mitigatememoryattacks(developer.android.com).Italsohasaveryuserfriendlydesignthat
GoogledubsMaterialDesign.ItwasinitiallyintroducedwithAndroidLollipop(5.0),and
involvesminimalism,aswellasvibrantcolorsandshapesthatcastshadows(google.com).This
designismeanttoprovidethemostaestheticallypleasingappearancepossible,whilealso
Allen6
maximizingusabilityandresponsiveness.
Withinthemobileapplicationmarket,therearecertaintrendsinpopularapps.For
example,mobilegamesingeneralseemtobequiteatrend,especiallyin20142015
(julysystems.com).Thesetrendsdonotalwayslastlongandchangealmostconstantly.Thereis
nocertainwaytopredictatrend,butifoneisquickenough,youcangetintothecurrentoneand
possiblyprofit.Agoodexampleofaverynotabletrendwasin2013,whenthegameFlappyBird
cameout.Thisgamewasanenormoussuccessandsparkedamassiveboomofclonesthat
absolutelyfloodedthemarket.ThisisasignthatFlappyBirdwasasignificanttrendsetter.This
trenddidnotlastverylong,however,anditdieddowninacouplemonths,withflappybirdeven
gettingremovedfromthePlayStorebythecreator.Afterthat,theclonesstartedtodecreasein
Allen7
popularityaswell.Thisshowsthatitwouldbewiseforonetoexamineexistingandpossible
futuretrendsinthemarketbeforecreatingtheirappiftheywantittobesuccessful.
TheabovedescribedinformationregardingtheAndroidOperatingSystemareall
importantpointsthatcan,andwill,beimplementedintomyseniorproject.Whatmakesthisa
SeniorProjectisthefactthatIpersonallyhavenoexperiencewithdeveloping,asstatedbefore
multipletimes,aswellasmylackofknowledgeoftheaspectsofanapp,listedabove,whichI
haveonlyjustresearchedduringthewritingofthispaper.Thefirst,andprobablymostimportant
aspectIwillbelookingatissecurity.Thismeanssecuritynotonlyfortheuser,butfortheapp
itself,makingitfreeofexploitsthatcouldinturnputtheuserorthedeveloperatrisk.Securityis
veryimportant,sincealackofpropersecuritymeasurescouldmeandataloss,orevendisclosure
ofprivateinformation,forallpartiesinvolvedwiththeapplication.Tothepartythatcreatedthe
app,failuretoproperlymakeanappsecureorhavepropermeasuresformitigationcouldgetinto
legaltroublefromaffectedconsumersifanattacksucceedsandobtainsanypersonal
information,suchaspaymentcardinfo,fromcustomers.Thatiswhyitwillbebesttoimplement
propersecuritymeasuresinmyapp.SomeofthesemeasuresthatIwillimplementmayinclude
limitingtheuseofAPIsthathandleanyuserdata,sothattherearenotasmany3rdparties
involvedusinghashtoavoidtheexposureofanydatakeepingtheneedofpermissionstoa
minimum,therebyminimizingtheriskofinadvertentlyputtingsensitivedataatriskandfinally
usingproperfileencryptionandatleastbasicSSLprotocoltoprotectanydataintransitonthe
deviceoronanetworkitisconnectedto.ThesearejustsomeofthemanynecessarystepsthatI
willtaketomakesurethatnouserinformationwillbedisclosedandnoexploitsorweaknesses
Allen8
willexistinmycodeorsubsequentpartsofmyapplication.Itwillgivemeandtheconsumera
goodsenseofpeaceofmind.
UsabilityisalsoanextremelyimportantaspectofanappthatImustmaster.Thisis
becauseanappcouldbe,forexample,arguablythemostusefulappevercreated,yetiftheuser
isnotabletounderstandhowtouseornavigateit,thenitistrulyuseless.ThatiswhyIplanto
followGooglesmaterialdesignideology,whichisdesignedaroundmaximumfunctionalityfor
theuser,inordertoensurethatbeautyandusabilityarebothmaximized(google.com).This
meansthatIwillalsobetryingtomaximizeaccessibility,whichgoogledescribesinits
guidelinesformaterialdesignas
whenallpeopleregardlessofabilitycannavigateit,
understandit,anduseitsuccessfully.
(google.com).Thesetwocharacteristicsgohandinhand,
astobefunctional,theappmustalsobeabletobeusedbyanyone,includingthosewith
disabilities.TomeetalloftheseneedsIwillfollowthemanyguidelinesofmaterialdesign,such
asminimalistshapes,shadows,hierarchicalobjectlayering,andpropertransitioning.Iwillalso
includecompatibilitywiththemanyaccessibilityoptionsavailablewithintheAndroidOS,such
asScreenReaderandMagnifier,aswellashighcontrastcolorsandsettingsthatcompensatefor
alackofsound,ifthereisanyinmyfinalproduct.Bytakingthesesteps,Iwillbeabletomakea
functionalandresponsiveappthatcanbeusedbyanyonewhosowishestouseit.
Allen9
WorksCited
"15MobileAppDevelopmentTrendsToLookOutForIn2015."
JulySystems
.N.p.,24Dec.
2014.Web.17Sept.2015.
"AHistoryofAndroid,FromCupcaketoM."
Gizmodo
.N.p.,n.d.Web.15Oct.2015.
"IntroductionMaterialDesignGoogleDesignGuidelines."
GoogleDesignGuidelines
.N.p.,
n.d.Web.02Nov.2015.
"IOSversusAndroid.AppleAppStoreversusGooglePlay:HereComesthenextBattleinthe
AppWars|ZDNet."ZDNet.N.p.,n.d.Web.12Oct.2015..
"TheFutureofMobileApplication."
TheFutureofMobileApplication
.N.p.,n.d.Web.12Oct.
2015.
AnnotatedBibliography
"15MobileAppDevelopmentTrendsToLookOutForIn2015."
JulySystems
.N.p.,24Dec.
2014.Web.17Sept.2015.
ThisisablogpostthatisaboutthemajorexpecteddesirabletrendsforAndroidappsin
2015(2).Itiswrittenbypeoplefromamobileappdevelopmentcompany,July
Systems,fordevelopers(5).Thiswouldappealtopeoplethatarelookingtofindout
whattheirapplicationshouldbefocusedonandwhatfeaturesitshouldhave(4).
"Android5.1APIs."
Android5.1APIs
.N.p.,n.d.Web.17Sept.2015.
Thispagetalksaboutthenewandroid5.1APIandwhatitmeans(2).Thisisimportant
toknowbecausewitheachnewversionofAndroidcomesnewAPIsandAPIlevelsthat
mustbeupdated(5).Mostalldevelopersthatwanttokeeptheirappsuptodateand
workingmaywanttorefertothiswhenthereisanewAndroidversionout.
Allen10
Echessa,Joyce."CreatingaCloudBackendforYourAndroidAppUsingParse."
SitePoint
CreatingaCloudBackendforYourAndroidAppUsingParseComments
.N.p.,12Aug.
2014.Web.17Sept.2015.
ThisresourceismeanttoexplainhowtosetupBaaSfeaturessuchascloudservice
andpushnotificationsusingplatformssuchasParse(2).Thisarticleiswrittenby
someonewhousesthisintheirownapp,thereforehasfirsthandexperiencewiththis
service.Thiswouldbeusefultothosewhodonotwantthetrialsofnativedevelopment
andwouldbewillingtolet3rdpartyhandletheirbackend(4).Thisisrelevantsincethis
iswhatIwilllikelydo,atleastforthebeginning(5).
"GettingStarted."AndroidDevelopers.N.p.,n.d.Web.16Sept.2015.
<https://developer.android.com/training/index.html/>.
Thepurposeofthiswebsite,madebyprofessionalappdevelopersforappdevelopers,
istoshowpeopletheprocessinvolvedinmakinganapp(2).Thecontentspansmultiple
pages,eachusuallycontainingavideoorsomethingrelevanttothatstepinthe
developmentprocess(3).Thissiteismadeforthosewhowanttolearntodevelopfrom
professionals(4).Thissitewillbecrucialtomygoalofmakinganapp,asitwalksyou
throughtheentireprocessstepbystep(5).
Thissourcewillbeusedmorethanonce,duetoitbeingan
extremely
expansive
websitemadebyGoogleforthesolepurposeofprovidingdeveloperseverythingthey
needtoknowaboutdevelopment,aswellasthesheerlackofscholarlysourcesfor
AndroidAppDevelopement.ItisoneoftheonlysourcesIwillactually
need
.
Lambert,Kenneth,andMartinOsborne.
FundamentalsofJavaAP*ComputerScience
EssentialsfortheAandABExams
.3rded.N.p.:n.p.,2007.Print.
ThisbookcontainsanindepthexplanationofJava,itssyntax,andhowtouseit(2).It
containsmosteverythingthereistoknowaboutthelanguageofJava(3).Itwillbe
usefulforandroiddeveloperssinceJavaisthemainlanguageusedinmakinganapp
(4).Thisbookis,however,somewhatoldandshowsanolderversionofJava(7).
"SecurityTips."
SecurityTips
.N.p.,n.d.Web.17Sept.2015.
Allen11
ThiswebpageismeanttoshowhowtomakesurethatyourAndroidappissafeand
secure(2).Securityisacrucialpartofmakinganapp,asnobodywantsanappthatis
riggedwithmalwareandsuch,thispageshowshowtomakesureitissecure(5).Any
developerthatwantsthisknowhowwilllikelycometothispagefirst,sinceitiswritten
byprofessionalsinthefield(4).
Sims,Gary."IWanttoDevelopAndroidAppsWhatLanguagesShouldILearn?"
Android
Authority
.N.p.,10June2014.Web.17Sept.2015.
Thisisanarticlethatexplainswhatprogramminglanguagesmaybenecessaryfor
developinganAndroidapp(2).Thisisextremelyrelevantsinceitoutlineswhatyoumay
needtoknowbeforeyoujumpin(5).AnyonewhoisplanningtomakeanAndroidapp
maywishtoreadthisfirst(4).
Smith,Sue."AndroidSDK:WorkingwithEclipseTuts+CodeTutorial."
CodeTuts+
.N.p.,n.d.
Web.17Sept.2015.
ThisarticledemonstrateshowtouseAndroidSDKwithEclipse(2).Itiswrittenby
peoplewhohaveexperienceindevelopingAndroidappsinthisfashion(5).Itisusefulto
people,suchasme,whoprefertousetheEclipseIDE(4).
"Xamarin."
BuildingCrossPlatformApplications
.N.p.,n.d.Web.18Sept.2015.
ThiswebsitedemonstrateshowtomakeanAndroid/iOSappcrossplatformusing
Xamarin(2).Thislookstobeagreatlyusefultoolthatputappsonotherplatforms.
Anyonewantingtoexpandtootherplatformsmightwanttolookintothis(4).Thiswould
berelevantsinceImayplantogofurtherandmaketheappworkoniOSlateron(5).
"XMLTutorial."
XMLTutorial
.N.p.,n.d.Web.17Sept.2015.
ThiswebsitecontainsatutorialonXML,itssyntax,andhowtouseit(2).Thisis
relevantsinceXMLisalanguagethatisusedtomakeUIsformostandroidappsandis
goodtoknow(5).Thesiteteachesthelanguageinsections,eachwiththeirown
exampleyoucanruninyourbrowser(6).
Allen12