Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called...

Preview:

Citation preview

App DevelopmentMobile Media Innovation Module 6

MobileMediaModule• TheMobileMediaModuleisdesignedasatwo-week,broad-basedstudy

onthemobilelandscapethatcanbeappliedinmanycourses.• TheprogramwasimplementedatOhioUniversity’sScrippsCollegeof

CommunicationtosupportourScrippsInnovationChallengeandtobuildknowledgeofthemobilelandscapeacrossourcommunicationcurricula.

• Forimplementation,webroughtinanexpertinmobiledevelopmenttoteachinfourexistingclassesovertwoweeksinSpring2013.Facultyteachingthoseclassesbecamethestudentsandbuilttheircapacitytoteachthematerialinsubsequentsemesters.

• By“hackingthecurriculum”usingthe“modulemethod,”wewereabletoreachmorethan500studentsinonesemesterwithnewmaterial.

• Formoreinformation,contactDr.MichelleFerrier,associateprofessor,E.W.ScrippsSchoolofJournalism,ferrierm@ohio.edu.

MobileMediaInnovationModules

• Part1:FundamentalsofMobile• Part2:AudienceandUsage• Part3:SocialandMobile• Part4:MobileandJournalism• Part5:mCommerce andMonetization• Part6:AppDevelopment

Ideas&IntellectualProperty

• Ideas– Everyonehashadanideaforanapp– Isanyonewillingtosharetheirappideas?

• IP- IntellectualProperty– Somethingyoucancopyrightorpatent– Uniquelyoriginal– Yourapp’s‘secretsauce’

Design- Wireframes• Wireframes- Tools– Whatisawireframe?

• Awireframeislikeablueprintforyourapp.Itprovidesaskeletonofyourapp.Keycomponentsofawireframeare:– Layoutofscreens– Hierarchy– Relationshipbetweenelementsonthescreen– Userinteraction

• Whataresometoolsusedtocreatewireframes?– Omnigraffle– Balsamiq– PenandPaper!

Design- Wireframes

Design• Design- Tools– Photoshop

• CreatedbyAdobe• Industrystandard(Since1988)• Initiallycreatedasaphoto-editingtool• Photoshopisnowaverb

– Sketch• QuicklyreplacingPhotoShopinsomecircles• Lightweight• Madespecificallyforwebandmobile• Easytouse• Lessexpensive

Development- iOS• Basedona

computinglanguagecalledObjectiveC

• XcodeisthenameoftheIDE(IntegratedDevelopmentEnvironment)

• NewlanguagereleasedbyApplecalledSWIFTwillalsoallowdeveloperstocreateapps

• IncludesiOSsimulatorfortestingapps

Development

Development- Android• BasedontheJava

computinglanguage• UsestheEclipseIDE

(IntegratedDevelopmentEnvironment)

• Includesdocumentation,samplecodeandAndroidsimulatorformostAndroiddevices

Development- Windows• UsesMicrosoft’s

ASP.netlanguagetopublishapps

• IncludesVisualStudioExpressIDE(IntegratedDevelopmentEnvironment)

• Containsmultipleemulatorsfortesting

Development– OtherTools• Appcelerator

– LeadingopensourceSDKforcross-platformmobiledevelopment

• PhoneGap– Opensourceframeworktocreatemobileapps

• Corona– Crossplatformdevelopmentframeworkforcreatingmobile

apps

• Theseplatformsareusedtocreatehybridapps• Theyallowyoutopublishformultipleplatformsusinga

single,non-nativecodebase.• Mostlybasedonweb-basedlanguages(HTML,CSS,Js)

OtherImportantTerms• NativeApplication-Anmobileapplicationdevelopedona

specificlanguageforaspecificplatform.

• HybridApplication-Anappthathascross-platformfunctionalityandiscreatedusingalanguageotherthanthenativelanguage.

• OpenSource- Softwarewho’soriginalsourcecodeisavailableforfreeandmaybemodifiedandredistributed.

ProjectManagement• WaterfallMethod– Moretraditionalstyleofprojectmanagement.Asequentialdesignprocessinwhichprogressisseenasaflowing,steadilydownwards(likeawaterfall)throughthephasesofConception,Initiation,Analysis,Design,Construction,Testing,Production/Implementation,andMaintenance.

• AgileMethod– Agroupofsoftwaredevelopmentmethodsbasedoniterativeandincrementaldevelopment,whererequirementsandsolutionsevolvethroughcollaborationbetweenself-organizing,cross-functionalteams.

WaterfallMethod

WaterfallMethod• Pros

– Longerdesignandplanningstageallowsformorepotentialforeseeablebugavoidance.

– Emphasisondocumentationreducesmiscommunicationandemphasizesaccountability.

– Designpassesthrougheasilyunderstandableandexplainablephases.

• Cons– Impossibletopredicteveryminuteproblemduringpre-

production.– Clientsmaynotknowexactlywhattheywantthefinal

productorfeaturelisttobeuntiltheyseeaworkingprototype.

– Designmustadapttothetechnology.

AgileMethod• Pros

– Workingsoftwaretopresenttoclientsearlierinproduction– Clientscanvisualizefinalproductmorequickly(andmakechanges

asnecessary).– Short“time-boxes”keepfocusontheshorttermgoals.– Minimalbugsattheendofeachiteration.

• Cons– Canbeinefficientinlargeorganizationsorverylargeprojects.– Clientresistancetonon-traditionalmethod(hardertotrack

milestones).– Hardertoadapttooffsiteoroffshoreteammembers.

Agileterms• SCRUMMaster- Thepersonaccountableforremovingimpedimentsto

theabilityoftheteamtodeliversprintgoals/deliverables.• ProjectOwner- Primaryauthoroftheuserstories,ownstheproduct

backlog,prioritizesthestories,writesacceptancetestsandacceptsworkcompletedbytheteam.

• Backlog- Anever-evolvinglistofproductrequirements,prioritizedbythecustomer(orcustomerrepresentative),thatconveystoanagileteamwhichfeaturestoimplementfirst.

• Sprint- TheuninterruptedperiodoftimeduringwhichanAgiledevelopmentteamperformswork,mostcommonly1-4weeksinlength,atwhich,theteamdeliversa“potentiallyshippable”product.

• Stand-Up-Ashort,daily,all-handsmeetinginwhichmembersofanAgileteamaddressthreequestions:– Whatdidyougetdonesincethelaststand-up?– Whatwillyoudobeforethenextstand-up?– Whatimpediments standinyourway?

MilestoneTerminology

• Prototype- Anearlysampleorreleaseofaproductbuilttotestaconceptorprocess.

• Build- Acompiledversionofaprogram.• Pre-Alpha- Allactivitiesperformedduringthesoftwareprojectbeforetesting.SomecontractswillrefertothelastmilestonebeforeAlphaas“Pre-Alpha”.

• Alpha- Releasestageinwhichallessentialfeaturesareplannedandwillbeaddedinthenearfuture.Nonewfeatures/contentcanbeaddedtothedesignatthispoint.

MilestoneTerminology

• Beta- Releasestageinwhichallfeaturesarecompleteandwherebugfixingismostimportant.

• ReleaseCandidate(RC)- Abetaversionwithpotentialtobeafinalproduct,whichisreadyunlesssignificantbugsemerge.

• GoldMasterCandidate(GMC)- Alsoreferredtoas“Releasetomanufacturing”orRTM.Asoftwareproductthatisreadytobedeliveredorprovidedtothecustomer.

Prototyping

• WhyPrototype?– Fast– Cheap– Easy– Workoutmajorproblems– Getteamonthesamepage– Workoutbugs– Motivate!

• http://youtu.be/iA5MVUNkSkM

OtherImportantTerms• MinimumViableProduct(MVP)- Aversionofanew

productwhichallowsateamtocollectthemaximumamountofvalidatedlearningandcustomers,withtheleasteffort.Itisastrategytargetedatavoidingbuildingproductsthatcustomersdonotwant,thatseekstomaximizetheinformationlearnedaboutthecustomerperdollarspent.

• Iteration- Theactofrepeatingaprocesswiththeaimofapproachingadesiredgoal,target,orresult.Multipleiterationsarecreatedtocreatethefinalproduct.Thinkofiterationslikedrafts.

AppStoresSpecifics&Promotion

AppStoresSpecifics&Promotion

• AppleAppStore– Closedandnotopentointerpretation– MustbearegisterediOSdeveloper($99/year)– Reviewrulesandguidelines– Appshouldnotreplicatefunctionalityofnativeapplications

– Shouldneverusethecameraormicwithoutauser’spermissionorknowledge

AppStoresSpecifics&Promotion

• AppleAppStore– MustincludeIconandupto5screenshots– Descriptionoftheapp– Takes5– 10businessdays

AppStoresSpecifics&Promotion

AppStoresSpecifics&Promotion

• GooglePlayStore– MustincludeIconandupto5screenshots– Descriptionoftheapp– Descriptionofcontentrating– Approvalcanbeaquickas24hours

AppStoresSpecifics&Promotion

• Google- Pros– Freedomofeditorialcontent– Virtuallyinstantappapproval

• Google– Cons– Fragmentation– lotsofdifferentdevicestodevelopandoptimizefor

QuickDiscussionQuestions

• Ifyouweredevelopinganapp,whatkindofdevelopmentwouldyouuse?Nativeornon-Native?Why?

• Whattoolwouldyouusetodesignyourapp?PhotoshoporSketchandwhy?

• Whenlaunchingyourapp,whatplatformwouldyoulaunchonfirst?AndroidoriOS?Why?

DiscussionQuestions• ArticleI:“HowMuchDoesItCostToDevelopAnApp?”• Was8-10weeksfasterorslowerthanwhatyouexpectedto

designanapp?

• Did$120-150Ksurpriseyouintermsofprice?

• Ifyouhadafairlysimplehalf-completeproject,butadeveloperwasunabletocompletetheproject,howwouldyouattempttocontinuetheproject?

• http://thenextweb.com/dd/2013/11/24/much-cost-develop-app-true-expense-starting-scratch/#!o49L7

DiscussionQuestions• ArticleII:“WhatYouNeedtoKnowBeforeYouBuildaMobileApp–

BesidesCode”

• Whataresomewaysyouwillknowthatyourideaisagoodone?

• Ifyouweregoingtobuildanapp,wouldyouapproachinvestorsorfundityourself?Why?

• Whatistheonethingthatsurprisedyoumostaboutbuildinganapp?

• http://seriousstartups.com/2014/04/15/build-mobile-app-besides-code/

Recommended