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

32
App Development Mobile Media Innovation Module 6

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

Page 1: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

App DevelopmentMobile Media Innovation Module 6

Page 2: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

MobileMediaModule• TheMobileMediaModuleisdesignedasatwo-week,broad-basedstudy

onthemobilelandscapethatcanbeappliedinmanycourses.• TheprogramwasimplementedatOhioUniversity’sScrippsCollegeof

CommunicationtosupportourScrippsInnovationChallengeandtobuildknowledgeofthemobilelandscapeacrossourcommunicationcurricula.

• Forimplementation,webroughtinanexpertinmobiledevelopmenttoteachinfourexistingclassesovertwoweeksinSpring2013.Facultyteachingthoseclassesbecamethestudentsandbuilttheircapacitytoteachthematerialinsubsequentsemesters.

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

• Formoreinformation,contactDr.MichelleFerrier,associateprofessor,E.W.ScrippsSchoolofJournalism,[email protected].

Page 3: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

MobileMediaInnovationModules

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

Page 4: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Ideas&IntellectualProperty

• Ideas– Everyonehashadanideaforanapp– Isanyonewillingtosharetheirappideas?

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

Page 5: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Design- Wireframes• Wireframes- Tools– Whatisawireframe?

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

• Whataresometoolsusedtocreatewireframes?– Omnigraffle– Balsamiq– PenandPaper!

Page 6: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Design- Wireframes

Page 7: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Design• Design- Tools– Photoshop

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

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

Page 8: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Development- iOS• Basedona

computinglanguagecalledObjectiveC

• XcodeisthenameoftheIDE(IntegratedDevelopmentEnvironment)

• NewlanguagereleasedbyApplecalledSWIFTwillalsoallowdeveloperstocreateapps

• IncludesiOSsimulatorfortestingapps

Page 9: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Development

Page 10: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Development- Android• BasedontheJava

computinglanguage• UsestheEclipseIDE

(IntegratedDevelopmentEnvironment)

• Includesdocumentation,samplecodeandAndroidsimulatorformostAndroiddevices

Page 11: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Development- Windows• UsesMicrosoft’s

ASP.netlanguagetopublishapps

• IncludesVisualStudioExpressIDE(IntegratedDevelopmentEnvironment)

• Containsmultipleemulatorsfortesting

Page 12: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Development– OtherTools• Appcelerator

– LeadingopensourceSDKforcross-platformmobiledevelopment

• PhoneGap– Opensourceframeworktocreatemobileapps

• Corona– Crossplatformdevelopmentframeworkforcreatingmobile

apps

• Theseplatformsareusedtocreatehybridapps• Theyallowyoutopublishformultipleplatformsusinga

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

Page 13: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

OtherImportantTerms• NativeApplication-Anmobileapplicationdevelopedona

specificlanguageforaspecificplatform.

• HybridApplication-Anappthathascross-platformfunctionalityandiscreatedusingalanguageotherthanthenativelanguage.

• OpenSource- Softwarewho’soriginalsourcecodeisavailableforfreeandmaybemodifiedandredistributed.

Page 14: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

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

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

Page 15: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

WaterfallMethod

Page 16: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

WaterfallMethod• Pros

– Longerdesignandplanningstageallowsformorepotentialforeseeablebugavoidance.

– Emphasisondocumentationreducesmiscommunicationandemphasizesaccountability.

– Designpassesthrougheasilyunderstandableandexplainablephases.

• Cons– Impossibletopredicteveryminuteproblemduringpre-

production.– Clientsmaynotknowexactlywhattheywantthefinal

productorfeaturelisttobeuntiltheyseeaworkingprototype.

– Designmustadapttothetechnology.

Page 17: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AgileMethod• Pros

– Workingsoftwaretopresenttoclientsearlierinproduction– Clientscanvisualizefinalproductmorequickly(andmakechanges

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

• Cons– Canbeinefficientinlargeorganizationsorverylargeprojects.– Clientresistancetonon-traditionalmethod(hardertotrack

milestones).– Hardertoadapttooffsiteoroffshoreteammembers.

Page 18: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

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?

Page 19: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

MilestoneTerminology

• Prototype- Anearlysampleorreleaseofaproductbuilttotestaconceptorprocess.

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

• Alpha- Releasestageinwhichallessentialfeaturesareplannedandwillbeaddedinthenearfuture.Nonewfeatures/contentcanbeaddedtothedesignatthispoint.

Page 20: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

MilestoneTerminology

• Beta- Releasestageinwhichallfeaturesarecompleteandwherebugfixingismostimportant.

• ReleaseCandidate(RC)- Abetaversionwithpotentialtobeafinalproduct,whichisreadyunlesssignificantbugsemerge.

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

Page 21: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

Prototyping

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

• http://youtu.be/iA5MVUNkSkM

Page 22: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

OtherImportantTerms• MinimumViableProduct(MVP)- Aversionofanew

productwhichallowsateamtocollectthemaximumamountofvalidatedlearningandcustomers,withtheleasteffort.Itisastrategytargetedatavoidingbuildingproductsthatcustomersdonotwant,thatseekstomaximizetheinformationlearnedaboutthecustomerperdollarspent.

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

Page 23: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

Page 24: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

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

– Shouldneverusethecameraormicwithoutauser’spermissionorknowledge

Page 25: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

• AppleAppStore– MustincludeIconandupto5screenshots– Descriptionoftheapp– Takes5– 10businessdays

Page 26: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

Page 27: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

• GooglePlayStore– MustincludeIconandupto5screenshots– Descriptionoftheapp– Descriptionofcontentrating– Approvalcanbeaquickas24hours

Page 28: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

AppStoresSpecifics&Promotion

• Google- Pros– Freedomofeditorialcontent– Virtuallyinstantappapproval

• Google– Cons– Fragmentation– lotsofdifferentdevicestodevelopandoptimizefor

Page 29: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

QuickDiscussionQuestions

• Ifyouweredevelopinganapp,whatkindofdevelopmentwouldyouuse?Nativeornon-Native?Why?

• Whattoolwouldyouusetodesignyourapp?PhotoshoporSketchandwhy?

• Whenlaunchingyourapp,whatplatformwouldyoulaunchonfirst?AndroidoriOS?Why?

Page 30: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

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

Page 31: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •

DiscussionQuestions• ArticleII:“WhatYouNeedtoKnowBeforeYouBuildaMobileApp–

BesidesCode”

• Whataresomewaysyouwillknowthatyourideaisagoodone?

• Ifyouweregoingtobuildanapp,wouldyouapproachinvestorsorfundityourself?Why?

• Whatistheonethingthatsurprisedyoumostaboutbuildinganapp?

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

Page 32: Mobile 6 2016 - Ohio University · Development - iOS • Based on a computing language called Objective C • Xcode is the name of the IDE (Integrated Development Environment) •