Hoe maak je een programma voor iOS. Hoe u een succesvolle iOS-app maakt

Heb je je ooit afgevraagd hoe de iOS- en OS X-apps die miljoenen iPhone-, iPad- en Mac-bezitters dagelijks gebruiken, tot stand zijn gekomen? We weten dat veel mensen hebben nagedacht over het ontwikkelen van programma's voor Apple-apparaten, maar beginners zijn in de regel bang voor de moeilijkheden bij het leerproces en het zelfstandig bestuderen van schoolboeken.

Het beroep zelf “applicatie-ontwikkelaar voor iOS en Mac” is universeel: het combineert kennis van twee programmeertalen: Objective C en Swift. De eerste is de hoofdtaal, gebouwd op basis van de C-taal en heeft een eenvoudige syntaxis. Zonder deze taal worden mensen niet aangenomen om in een mobiele applicatiestudio te werken. Maar Swift is een relatief nieuwe taal: Apple introduceerde het in 2014, het is geïntegreerd met C en werkt sneller dan Objective C en Python, waardoor je elk programma kunt maken - zowel games als nuttige applicaties.

Tegenwoordig zijn er nog maar een paar specialisten die Swift kennen, waardoor er veel vraag naar is op de markt. Ga gewoon naar een HR-platform om het gemiddelde salaris van iOS-ontwikkelaars te zien: 100 duizend roebel. Ervaren programmeurs hebben salarissen van enkele honderdduizenden roebel + verschillende bonussen van het bedrijf.

Om in korte tijd de beste resultaten en een gegarandeerde stage te behalen, kun je gebruik maken van de dienst GeekBrains. Het bevat zowel Objective C als Swift, wat betekent dat je in wezen twee specialiteiten krijgt in plaats van één. Bedrijven verkopen slimme iOS-programmeurs als warme broodjes, zodat ze geen week zonder werk zitten.

Het leerproces is een online uitzending van lessen, zodat je overal ter wereld kunt studeren. Speciaal ontwikkelde unieke technologie maakt leren op afstand nog handiger dan face-to-face leren. Maak je huiswerk, en als je niet in de les kunt zijn, bekijk het dan op de opname. Zo ziet een typische GeekBrains-les eruit:

Waarom online cursussen? Ze hebben een duidelijk voordeel ten opzichte van universiteiten wat betreft de tijdsbesteding en bieden tegelijkertijd de mogelijkheid om praktische ervaring op te doen en resultaatgarantie te krijgen. 7 op de 10 servicestudenten vinden werk terwijl ze nog studeren, omdat GeekBrains een gegarandeerde stage biedt. Daarnaast doen studenten waardevolle ervaring op met teamontwikkeling en een portfoliocase. Zonder dat laatste is het bijna onmogelijk om nu aan een baan te komen.

Zo kan jouw cv er bijvoorbeeld uitzien na de training.

Eind vorige maand publiceerde ontwikkelaar Richard Felix een onderhoudend artikel waarin hij zo helder en bondig mogelijk probeerde uit te leggen hoe je een succesvolle applicatie voor iOS maakt. In het bijzonder deelde hij nuttige tips voor beginnende ontwikkelaars, zijn eigen observaties op het gebied van programma-ontwerp en de nieuwste trends in de App Store.

Richard kent alle fijne kneepjes van de ontwikkeling uit persoonlijke ervaring, aangezien hij de afgelopen jaren een aantal populaire applicaties heeft gemaakt voor moderne mobiele platforms en het web (Are My Sites Up, Wonderful, Dispatch en anderen).

Dus op een bepaald moment in je leven besloot je ontwikkelaar te worden en te proberen je eigen iOS-app te maken. Je bent bang dat je veel tijd (en geld) zult besteden aan het ontwikkelen van een programma dat niemand zal gebruiken. Je droomt ervan een applicatie te maken die een jaar na de release actief verkocht zal worden, maar je hebt geen idee hoe je dat moet doen. De hieronder beschreven tips helpen u uw doelen te bereiken.

Zoek een origineel idee

Bij elke presentatie maakt Apple miljoenen verkopen van iOS-apparaten en fantastische App Store-records bekend. Geleid door dit feit gaan veel beginnende ontwikkelaars er ten onrechte van uit dat het creëren van nog een banale e-mailclient of foto-editor hen in staat zal stellen miljoenen dollars te verdienen (naar hun mening betekent dit niet noodzakelijkerwijs dat ze naar de top van de Apple App Store-hitlijsten moeten klimmen).

Ondanks de prevalentie van het iOS-platform is dit echter een grote misvatting. Natuurlijk verdien je in dit geval wat geld en verdien je het ontwikkelingsproces terug, maar om echt te bereiken significant succes, uw programma moet niet alleen de genoemde functies uitvoeren, maar ook een soort origineel kenmerk hebben, een soort pit die het zou onderscheiden van honderden concurrenten en de aandacht zou trekken tegen de algemene achtergrond.

Onderzoek uw doelgroep

De App Store biedt iedereen een echte schat in de vorm van grafieken van populaire applicaties, op basis waarvan je de categorie van het programma kunt bepalen, enkele punten voor jezelf kunt opmerken en dat heel originele idee kunt vinden.

Momenteel kunnen we de volgende drie categorieën onderscheiden van de populairste programma's in de App Store:


  • Alternatieve applicaties voor iOS-systeemprogramma's (verbeterde rekenmachines, kalenders, e-mailclients, foto-editors, takenlijsten, enz.). Ze zijn populair omdat veel mensen worden geconfronteerd met de beperkingen van de standaard iPhone/iPad-tools en de functionaliteit van hun apparaten willen uitbreiden. Apple maakt programma's voor de massa (ze zijn gemakkelijk te gebruiken en intuïtief), en daarom lijden meer gevorderde gebruikers (als je meer functies nodig hebt, zul je een applicatie van derden moeten gebruiken - en dit is in ons voordeel).

  • Spellen, en een verscheidenheid daarvan. Vooral degenen die je dwingen de applicatie te delen met vrienden en collega's, wat veel waardevoller is dan welke reclamebanner dan ook.

  • Applicaties met een minimaal aantal functies die op het eerste gezicht lijken Dus Het is elementair dat veel ontwikkelaars dergelijke ideeën al in de fase van het nadenken over het project afwijzen. Een typisch voorbeeld is een programma genaamd Over, waarmee u elegante bijschriften aan uw foto's kunt toevoegen. Voor een gevorderde gebruiker lijkt Over misschien een vrij beperkte tool, maar veel beginners zijn helemaal tevreden met deze "foto-editor", wat wordt bevestigd door goede verkopen. Het is verbazingwekkend hoe de correcte implementatie van een enkele gedeclareerde functie kan leiden tot een volledig succesvol programma.


Vind het wiel niet opnieuw uit en update vaak

Veel populaire iOS-applicaties hebben hun succes bereikt dankzij de volgende functie: ze stellen de gebruiker in staat snel een actie uit te voeren (bijvoorbeeld een foto bewerken), maar belasten hem niet met onnodige functies en knoppen. Het is niet nodig om het wiel opnieuw uit te vinden en een foto-editor met muziekafspeelfunctie te maken.

Plaats uzelf in de schoenen van de gebruiker en probeer u te concentreren op de functies die dat wel zullen doen Echt bruikbaar. Het is helemaal niet nodig om al uw ideeën in de eerste versie te implementeren; laat kleine ideeën achter voor toekomstige updates van de applicatie. Nadat het programma in de App Store is uitgebracht, krijgt u veel gebruikersrecensies, op basis waarvan u conclusies kunt trekken over de noodzaak om deze of gene functie te implementeren.

Bovendien zorgen regelmatige applicatie-updates ervoor dat uw product voortdurend wordt gehoord en “flikkert” voor de ogen van potentiële kopers in de blogosfeer.

Teken een kleurrijk pictogram

Een mooi icoon is de sleutel tot het succes van elke applicatie ( dus iemand? - Noot van de redactie). Met een iPhone of iPad in zijn handen wil de gebruiker altijd grafische afbeeldingen van hoge kwaliteit en een "weelderig" ontwerp op zijn scherm zien, wat, zoals ze zeggen, een lust voor het oog is. Mensen zullen eerder aandacht aan het programma besteden als de ontwerpafdeling voldoende tijd en moeite besteedt aan het creëren van een aantrekkelijk merkicoon. Uiteindelijk zou dit ervoor moeten zorgen dat uw app de top van de App Store-hitlijsten bereikt.

Op gespecialiseerde sites zoals

Veel nieuwe ontwikkelaars of mensen die alleen maar geïnteresseerd zijn in programmeren, weten niet hoe ze snel en eenvoudig een iOS-app kunnen maken.

We zullen dit hele proces stap voor stap analyseren, zodat iedereen dit materiaal kan lezen en de ontwikkeling zelfstandig kan uitvoeren.

Stap één. Bedenk een idee en een naam

Natuurlijk moet je vanaf het allereerste begin met een goed idee komen dat populair zou kunnen zijn. De applicatie moet eenvoudig, functioneel en nuttig zijn voor gebruikers. Hier zijn enkele tips om u te helpen een geweldig idee te vinden en breng het tot leven:

1 Ga naar de AppStore en bekijk de programma's die daar worden gepresenteerd. Misschien komt er iets in je op.

2 Ook kijk naar je lijst met apps(geïnstalleerd). Het is waarschijnlijk dat u ze niet allemaal leuk vindt en dat u aan sommige ervan wat functionaliteit wilt toevoegen. Dit wordt het idee voor je creatie!

3 Kijk voor hetzelfde doel naar de apps van je vrienden.

Belangrijk! Aan het einde van uw idee moet u een duidelijk beeld hebben van welke functie uw toepassing zal vervullen.

Wat de naam betreft, deze kwestie moet ook zeer serieus worden genomen. Kijk eerst naar de meesten en hun namen. Ga hiervoor naar apple.com/ru/itunes/. Bekijk zeker het gratis en betaalde gedeelte.

Experts benadrukken verschillende tips over wat de naam zou moeten zijn, en specifiek:

  • lengte ongeveer 10 tekens (niet veel meer, misschien minder, maar nogmaals, niet te veel);
  • bij voorkeur Engels (de interface zou dit trouwens ook moeten hebben om het consumentenpubliek uit te breiden);
  • twee woorden in de titel;
  • één woord moet het doel volledig weerspiegelen;
  • het tweede woord moet een beschrijving zijn van het eerste.

Stap vier. Conceptontwikkeling

In de eerste stap heeft u het idee en de naam van de toekomstige toepassing al geaccepteerd. Nu is het de moeite waard om iets te doen waarmee je direct kunt beginnen met ontwikkelen. Het gaat om het concept. Hierin Het concept omvat het volgende:

  • Doelgroep. Denk goed na over wie uw gebruiker zal zijn. Dit kan een jong, doelgericht en vertrouwd met moderne gadgets zijn. Aan de andere kant kan dit een oudere gebruiker zijn die verre van technologie is. De overige twee componenten van het concept zullen hiervan afhangen.

  • Functioneel. Vermeld duidelijk alle functies die de applicatie zal uitvoeren.
  • Ontwerp. Schets, zelfs op een vel papier, hoe de applicatie eruit zal zien. Bovendien moet u duidelijk begrijpen hoe het startscherm eruit zal zien, welke knoppen het zal hebben en wat er op de extra pagina's zal staan. Voeg ook knoppen toe volgens de lijst met functies. Ontwerp ook alle knoppen.

Zodra je alle schetsen hebt, kun je beginnen met coderen!

Stap vijf. Codering

Open nu Xcode en voer het uit de volgende fasen van het maken van software op iOS:

1 Tik op het startscherm in het menu aan de linkerkant op "Sollicitatie"(open deze sectie) en selecteer "Lege aanvraag". Klik "Volgende". Voer vervolgens uw gegevens in en voer deze in het veld Ontwikkelaars-ID (gegeven door Apple) in "voorbeeld" en geef in het klassevoorvoegselveld op "XYZ".

2 Selecteer vervolgens "Bestand" en in de vervolgkeuzelijst "Nieuw". Druk vervolgens achtereenvolgens "Gebruikersinterface", "Storyboard" en een knop "Volgende". Selecteer in het apparaatmenu en voer dit in het naamveld in "Voornaamst". Sla dit bestand op in dezelfde map als uw hoofdproject. Hierna verschijnt het bestand Main.storyboard in de projectboom (aan de linkerkant). Dit is, zoals u wellicht al heeft begrepen, een visuele weergave van alle schermen van uw programma. Dit is wat u in de toekomst gaat bewerken.

3 Nu moet u ervoor zorgen dat wanneer u de applicatie start, precies het scherm wordt geopend dat u in Storyboard hebt gemaakt. Om dit te doen, selecteert u in de mappenboom aan de linkerkant achtereenvolgens uw project, "Doelstellingen", "Algemeen", "Implementatie-informatie". Dan bij de inscriptie "Hoofdinterface" kiezen "Voornaamst", zoals in figuur 8 - dit is precies wat we in de vorige fase ons scherm noemden.

Rijst. 9. Het gemaakte scherm toewijzen als het hoofdscherm in Storyboard

4 Nu moet u in feite dit hoofdscherm maken, dat bij het opstarten als eerste wordt geopend. Om dit te doen, in de boom aan de linkerkant Klik één keer op "storyboard". Er wordt een leeg venster geopend in het hoofdvenster. Klik rechtsonder op het kubuspictogram; dit is een bibliotheek met objecten die aan het scherm kunnen worden toegevoegd. Zoek nu aan de rechterkant "Bekijkcontroller" en sleep het met de muiscursor naar een leeg veld. Er verschijnt een rechthoekig object. Eigenlijk kun je daar alle elementen toevoegen.

5 Nu kunt u andere objecten uit de bibliotheek toevoegen. Dit kunnen tekstvelden, invoervelden en andere elementen zijn. Als u erop dubbelklikt, kunt u hun attributen en eigenschappen wijzigen. Eigenlijk kun je op dezelfde manier code schrijven om op een klik te reageren. Als je echter video-tutorials over Objective-C hebt bekeken, weet je heel goed welke elementen je nodig hebt en hoe je deze kunt toevoegen.

6 Als u nog een scherm wilt toevoegen, doe dit dan op dezelfde manier als voorheen: verplaats het object naar de lege ruimte "Bekijkcontroller". Dan kun je er ook diverse voorwerpen op verplaatsen.

7 Nu moeten we ervoor zorgen dat de gebruiker kon tussen deze schermen bewegen met een veegbeweging of door op de betreffende link te klikken. Er is een object hiervoor genaamd "Navigatiecontroller". Verplaats het naar uw startscherm. Klik vervolgens op "Editor", Dan "Ingebed" en op het bovengenoemde doel. Er verschijnt een grijze balk bovenaan het startscherm. Dit betekent dat er een zogenaamde navigatiebalk aan is toegevoegd.

8 Om een ​​schermnavigatieknop toe te voegen, is er een object "Barknop". Dit is, om het simpel te zeggen, een knop. Verplaats het naar het navigatiepaneel en stel de juiste eigenschappen in.

Voeg de overige objecten op dezelfde manier toe en stel ook de benodigde eigenschappen daarvoor in. We zullen niet te diep ingaan op het coderen van een applicatie, omdat dit een zeer breed onderwerp is. Bovendien, als u het bovenstaande materiaal leest, weet u hierover de nodige informatie. Maar de bovenstaande codeerfasen zijn het begin van uw verdere ontwikkelingen.

Dit is mijn tweede ervaring met het maken van een applicatie. Ik heb uitgebreid over de eerste gesproken - daar hadden we het over het aantrekken van investeringen, het selecteren van ontwikkelaars, enz. Helaas kwam de eerste pannenkoek er klonterig uit.

Ik werd enorm teleurgesteld door het gebrek aan programmeervaardigheden, waardoor ontwikkelaars hun armen konden verdraaien en konden profiteren van onwetendheid. Daarom besloot ik dat ik het coderen zelf onder de knie moest krijgen, aangezien het maken van applicaties en het niet weten hoe te programmeren betekent dat je in een zeer ernstige afhankelijkheid terechtkomt, waar ontwikkelaars van op de hoogte zijn en waar ze vaak misbruik van maken.

Onderwijs

Over het algemeen werd de beslissing genomen en in januari 2016 begon ik met werken. Ik ben van beroep een toegepaste computerwetenschapper, maar in feite heb ik, afgezien van de meest elementaire vaardigheden bij het werken met Pascal, nooit iets geleerd op de universiteit, en dat was vijf of zes jaar geleden. Ik had ook een beetje ervaring met het werken met HTML en CSS bij het maken van eenvoudige websites, wat echter niet veel hielp bij het maken van applicaties. Dus ik begon bij de basis. Van de oude en bijna volledig vergeten Pascal. Ik heb de “Free Pascal”-editor http://freepascal.ru/ gedownload, een leerboek gevonden en begonnen met eenvoudige optel- en aftrekkingsprogramma's. In totaal kostte het ongeveer twee weken les, twee tot drie uur per dag, om mijn geheugen op te frissen.

Een diepgaande studie van Pascal vereiste meer oefening, waarvoor ik Abrahamyans Pascal-probleemboek met 1000 problemen (PDF) vond.

Omdat ik zo snel mogelijk wilde beginnen met het schrijven van applicaties, zonder te wachten op het einde van de eerste fase van de training, parallel aan het oplossen van problemen in Pascal, begon ik C te studeren, volgens het boek "The C Programming Language" - Brian Kernighan en Dennis Ritchie (pdf) . Hier zal ik afzonderlijk zeggen dat ondanks het feit dat dit boek ook in het Russisch is, ik het in de oorspronkelijke taal heb bestudeerd, omdat ik over het algemeen het Engels vrij goed ken, en dit is naar mijn mening heel belangrijk voor iedereen die betrokken is bij programmeren . Er zijn in de regel veel meer educatief materiaal en eenvoudigweg materiaal over een bepaalde programmeertaal in het Engels dan in het Russisch. Het werken met de AppStore, het downloaden van de applicatie, gebruiksvoorwaarden etc., dit alles gebeurt ook grotendeels in het Engels. We kunnen dus zeggen dat Engels op het niveau van het lezen van technische literatuur een verplichte vaardigheid is voor een programmeur.

Ik programmeer al sinds mijn eerste project met een Mac voor C. Ik heb C-problemen in Xcode opgelost. Om het verschil in de syntaxis van Pascal en C beter te begrijpen, begon ik problemen op te lossen uit hetzelfde Abrahamiaanse problemenboek, maar dan in C. Na twee weken dagelijkse lessen van 4-5 uur kon ik ongeveer 300 problemen oplossen in Pascal en de helft minder in C, en ongeveer 100 pagina's van een boek over C doornemen. Tegelijkertijd besloot ik een Engelstalige dienst aan het leerproces te koppelen: Tree House.

Dit is een trainingsservice die me veel heeft geholpen bij het beheersen van HTML en CSS. Abonnementskosten vanaf $ 25,- per maand. Maar naar mijn mening is dit gerechtvaardigd. De dienst biedt trainingsmateriaal over verschillende programmeertalen, waaronder Java, C#, Python, Swift en vele andere. De training vindt plaats in fasen, van video tot video, met verschillende inzetstukken van praktische taken.

Alle video's zijn zeer visueel, interessant, worden voortdurend bijgewerkt en leggen in detail alle belangrijke punten uit, of het nu de essentie van Object-Oriented Programming is of de principes van het werken in Xcode. Ik heb uiteraard gekozen voor trainingsmateriaal over C en over het maken van iOS-applicaties met Objective-C.

Mijn training leek dus op een poging om op alle fronten tegelijk vooruitgang te boeken. Ik oefende met het oplossen van problemen in Pascal om, zoals het mij leek, de basis van het programmeren zo stevig mogelijk te leggen, studeerde C om Objective-C beter te begrijpen, en studeerde uiteindelijk Objective-C om te beginnen met schrijven voor IOS zo snel mogelijk.

Er ging dus weer een maand voorbij met dagelijkse lessen van gemiddeld 4-5 uur per dag. Aan de ene kant is het misschien logischer om stap voor stap te werk te gaan, bijvoorbeeld eerst met Pascal af te rekenen, dan met C en dan verder te gaan met Objective-C, maar in feite was het de poging om alles te behandelen wat mij uiteindelijk in staat stelde om bespaar veel tijd, omdat ik steeds meer aandacht begon te besteden aan het oplossen van problemen in Pascal en C, maar direct aan het maken van applicaties uit het Tree House-trainingsprogramma. Dit was veel interessanter en liet in wezen zien dat de taken uit het probleemboek van Abrahamyan en het materiaal uit Kernighan en Ritchie’s Book on C goed zijn voor het begrijpen van de basisprincipes, maar over het algemeen vrij ver verwijderd zijn van het echte proces van het maken van applicaties. Als gevolg hiervan ben ik tegen het einde van de derde maand van mijn training volledig gestopt met het beoefenen van Pascal en C. In plaats daarvan concentreerde ik me op het praktische materiaal van Tree House over Objective-C en het bouwen van applicaties in Xcode.

Spelcreatie. Idee

Nadat ik een paar eenvoudige apps uit de tutorial had gemaakt, besloot ik dat ik eindelijk klaar was om iets interessants te doen. Nadat ik mijn lijst met ideeën had geopend, die ik af en toe aanvul als er iets potentieel interessants in me opkomt, richtte ik mijn aandacht op de ideeën om een ​​spel te maken over het onderwerp ‘Corruptie bestrijden’. De betekenis van het idee is dat corrupte functionarissen als vijanden optreden, ze moeten worden geneutraliseerd en dan zal de spelwereld beter worden. Er is ook een subtekst die zegt dat corruptie slecht is en dat hoe minder corruptie er is, hoe beter het milieu. Gezien het feit dat het onderwerp relevant is voor Rusland, en ik geen toepassingen met een soortgelijk idee kon vinden, besloot ik erover na te denken en begon na te denken over de beste manier om het te implementeren.

Hoewel ik nog steeds geen idee had hoe ik games moest maken, besloot ik dat een paar instructievideo's dit probleem zouden oplossen. Eerst moesten we beslissen hoe het spel eruit zou zien. Na een beetje brainstormen werd besloten dat de meest optimale optie een 2D-game zou zijn, waarbij de held op elk niveau van links naar rechts rent en verschillende tegenstanders en obstakels naar hem toe rennen. Deze optie leek mij acceptabel voor het spelidee en niet zo moeilijk om te implementeren.

Nadat het concept was goedgekeurd en kort beschreven, was het noodzakelijk om te begrijpen hoe games werden gemaakt. Nadat ik een video had gegoogled, kwam ik er meteen een tegen die liet zien hoe je een spel als Flappy Bird maakt ( YouTube). Hier rees een belangrijke vraag. Het is geen geheim dat Apple in 2014 een nieuwe programmeertaal heeft uitgebracht: Swift, die veel goede dingen van Objective-C heeft overgenomen en de logische voortzetting ervan is geworden.

De video die ik tegenkwam ging over het maken van Flappy Bird specifiek in Swift, maar ik kon er geen vinden die even eenvoudig en begrijpelijk was voor Objective-C. Zonder aarzelen besloot ik dat de toekomst nog steeds aan Swift toebehoort en dat ik maar beter niet achterop kon raken, vooral omdat dezelfde Tree House uitstekend materiaal had om het te bestuderen. Als gevolg daarvan nam ik een pauze om Swift te leren, de syntaxis en de belangrijkste verschillen met Objective-C te begrijpen. Er ging weer een week lessen voorbij, gemiddeld 8 uur per dag. Ik bladerde door de basis Swift-tutorials en besloot dat ik eindelijk klaar was om de video over het maken van een Flappy Bird door te nemen. Binnen een paar dagen heb ik dit kunnen maken:

Nadat ik een algemeen begrip had gekregen van het werken met de Sprite Kit-engine, kon ik eindelijk verder gaan met het werken aan mijn applicatie.

Concept

In eerste instantie was ik van plan alleen de eenvoudigste dingen te doen: een scrollende achtergrond met 3 niveaus, een geanimeerde held, wapens, het vermogen om te springen en het vermogen om te schieten. Dit was nodig omdat ik, afgezien van de meest algemene ideeën over het werken met Sprite Kit, geen ervaring had, ik moest met iets heel eenvoudigs beginnen. Hoe je klikken registreert en heldensprongen uitvoert, hoe je door de achtergrond scrollt, hoe je kogels maakt op het moment van schieten, enz. Er waren tientallen of zelfs honderden van deze vragen. En de oplossing voor iedereen is altijd hetzelfde geweest: Google. Gelukkig is er op internet een groot aantal verschillende materialen (helaas meestal in het Engels) over het maken van games in Swift, die voorbeelden geven van het oplossen van verschillende vragen die bij mij opkwamen. De vraag-/antwoordservice Stack Overflow biedt ook enorme en onschatbare hulp.

Ik denk dat ik met zijn hulp 70% van alle vragen heb kunnen oplossen. Ik wendde me ook tot Apple-documentatie, maar vrij zelden. Misschien maximaal in 10% van de gevallen, en dan als er geen andere opties waren.

Na weer een drukke week, waarin ik bijna al mijn tijd besteedde aan programmeren - 8-10 uur per dag, kon ik dit maken:

Hij kon met zijn benen bewegen (ik tekende de animatie zelf in Photoshop), springen en schieten vanuit een jachtgeweer met een karakteristiek geluid, terwijl tegelijkertijd de achtergrond op de achtergrond scrolde. Dit was het begin)

Prototype

Dankzij deze schets kon ik veel begrijpen over de werking van mijn toekomstige spel en nadat ik er zeker van was dat het concept klopte, besloot ik als volgende stap vijanden toe te voegen die zowel kunnen schieten als een normaal ontwerp. Aanvankelijk was ik van plan om al het ontwerp (achtergrond-, helden- en vijandanimaties, items, enz.) bij een freelancer te bestellen, aangezien dit het enige is dat ik zelf niet kon doen. Maar toen herinnerde ik me de Envato Market-website: http://market.envato.com/, waar ik eerder muziek, websitesjablonen, presentaties, enz. kocht.

Naast wat er op de site staat, is er een grote keuze aan allerlei animaties, texturen, geluiden en andere zaken die uiterst noodzakelijk zijn bij het maken van applicaties. De prijzen zijn naar mijn mening ook zeer redelijk. De reeks animaties van het hoofdpersonage die ik heb geselecteerd, bevat bijvoorbeeld, naast bonussen in de vorm van verschillende objecten (munten, diamanten, enz.), bijvoorbeeld 8 animaties zoals schieten, rennen, springen, doodgaan, enz.

Ik kocht dit setje voor €7. Het enige punt is dat de bij hen gekochte goederen onderworpen zijn aan verschillende licenties. Sommige staan ​​bijvoorbeeld het gebruik van een product in slechts één product toe voor onbeperkte gratis distributie, andere staan ​​de wederverkoop ervan toe aan derden die dezelfde onbeperkte gratis distributie nastreven, terwijl andere, zoals bijvoorbeeld bij muziek, alleen distributie aan een bepaalde groep toestaan. beperkt aantal luisteraars, enz. De kosten van deze licenties variëren en kunnen vaak 4-5 keer verschillen.

Maar aangezien ik de held niet als afzonderlijk product ging verkopen, was een licentie voor de onbeperkte gratis distributie voor mij voldoende.

Over het algemeen kocht ik een held, wapens, vijanden en alles wat nodig was voor de achtergrond. De achtergrond zelf werd niet verkocht zoals hij is.

Dit is het resultaat van mijn werk in Photoshop, gemaakt van een paar dozijn verschillende objecten: een hek, asfalt, gaten, hopen afval, enz. Over het geheel genomen duurde het enkele dagen om te maken. Vervolgens keek ik ongeveer 10 keer naar Envato, elke keer dat ik iets anders kocht dat ik nodig had.

Vervolgens kwam het gebruikelijke, enerzijds routinematige, maar tegelijkertijd zeer interessante werk. Stap voor stap loste ik bepaalde opkomende problemen op, voegde nieuwe functies toe, herschreef ogenschijnlijk reeds geschreven stukjes code omdat ik een optie vond om ze in te korten, te optimaliseren of anderszins te verbeteren, bugs te repareren, enz. Als ik nu zo'n aanvraag zou schrijven, zou ik alles natuurlijk twee keer zo snel hebben gedaan, maar in die tijd was absoluut alles nieuw voor mij en moest ik veel tijd besteden aan het vinden van betere oplossingen. Twee maanden van intensief werk gingen voorbij en uiteindelijk werd het prototype, zoals bedoeld, gerealiseerd.

Ik had een voltooid niveau met 5 soorten wapens, EHBO-koffers, voorwerpen, vijanden en nog veel meer. Vervolgens besloot ik tests uit te voeren onder mijn vrienden en te brainstormen om te begrijpen wat er ontbrak. Er zijn nogal wat correcties en aanvullingen geweest. Zozeer zelfs dat ik, volgens mijn inschattingen, zeker nog zes maanden aan de game zou hebben gewerkt. Ik dacht er een paar dagen over na en kwam uiteindelijk met een lijst van wat echt nodig was, streepte al het andere door en besloot een methode uit de ruimtevaartindustrie te gebruiken waar ik ooit over had gehoord. Het punt is dat het vanaf een bepaald punt, vóór de lancering, verboden was om wijzigingen of verbeteringen aan de raket aan te brengen. Anders kan het voor altijd worden verbeterd.

Finalisatie van het spel

Vervolgens kwam de kwestie van het vijandelijk ontwerp. Ik heb er in totaal 6 soorten: 5 eenvoudige vijanden en een baas + een eerlijke burger. Ik was van plan om al deze sprites te laten tekenen, omdat ik wilde dat de personages levensechter zouden zijn. Ik ging naar Freelance.Ru en plaatste een advertentie voor het maken van 5 karakters, met elk 18 animaties (8-25 frames). Er waren veel animaties, want naast de standaard animaties van rennen, schieten, gearresteerd worden, staan, enz., waren er ook animaties van de dood van elk type wapen, in slow motion of niet in slow motion. De goedkoopste prijs van een gerenommeerde freelancer die ze mij vertelden was ongeveer 40 duizend roebel en 1 maand werk. Het leek mij een beetje duur, dus wendde ik me opnieuw tot Envato. Gelukkig was er zojuist een verzameling verschillende sprites van dezelfde ontwerper naar de site geüpload.

Sprites uit zijn verzameling kosten, samen met een reeks animaties, gemiddeld $ 15. Het belangrijkste is dat het archief met de sprite bestanden bevat voor het Spriter-programma.

Door Sprite in dit programma te openen en het een beetje te begrijpen (het is heel gemakkelijk te leren), kun je absoluut alle animaties voor je personages maken met verschillende storyboards. Over het algemeen heb ik erover nagedacht en alle personages op Envato gekocht, waarna ik het zelf heb verwerkt, de nodige animaties heb toegevoegd en naar de applicatie heb geüpload. Het werken met texturen is uiterst vervelend en eentonig. Ik moest de gemaakte animatie downloaden van het Spriter-programma en deze vervolgens verwerken in Photoshop (uitbreiden, afmetingen instellen), vervolgens comprimeren, hernoemen, 1x, 2x, 3x afbeeldingen maken. Het kostte me waarschijnlijk minstens een maand om alle animaties te verwerken. Een hele maand eentonig en eentonig werk, gelukkig heb ik een assistent bij dit werk kunnen betrekken. Maar ik heb het hele proces doordacht, de animaties gemaakt die ik wilde en ze zo vaak als nodig opnieuw gemaakt.

Parallel aan het werken aan de texturen bleef ik het spel stap voor stap ontwikkelen. Na twee maanden hard werken zag ik eindelijk het licht aan het einde van de tunnel. Maar helaas bleek dat ik bijna twee maanden moest stoppen met werken, omdat andere dingen zich opstapelden, plus de zomer, en over het algemeen werd het project op pauze gezet. Begin oktober ging ik weer aan het werk. Hoewel ik hoopte dat er nog maar heel weinig over was, begonnen er in feite problemen voor me te verschijnen die ik, vanwege onervarenheid, voorheen niet eens had vermoed.

Ten eerste, ondanks het feit dat ik mijn png-texturen heb gecomprimeerd met behulp van deze online service: http://compresspng.com/ru/, leidde dit er niet toe dat ze minder RAM in beslag namen terwijl de applicatie actief was. Het werd tijd dat ik erachter kwam dat de grootte van de foto niet gelijk is aan de grootte van het RAM-geheugen dat ervoor nodig is.

Ten tweede ontdekte ik de wondere wereld van geheugenlekken, Xcode-tools om deze op te sporen en alle ‘geneugten’ van de ‘sterke referentiecyclus’. Nadat ik mijn spel door de tools had geleid, ontdekte ik ongeveer drie en een half duizend lekken.

Ten derde realiseerde ik me dat de standaard tekentextuurresolutie van 180x180 voor mijn spel in wezen te hoog is en dat ik alle animaties gemakkelijk opnieuw kan maken met een resolutie van 117x117 zonder enige kwaliteitsvermindering. Het is interessant dat ik op het moment dat ik de animaties maakte, bang was dat ik de bronnen niet in een resolutie van 360x360 achterliet. Omdat de grootte van de 2x foto 180x180 was, had de 3x foto, naar mijn mening, 360x360 moeten zijn, maar uit onwetendheid heb ik ze niet gemaakt, en het bleek, godzijdank, want uiteindelijk waren ze dat wel. niet nodig.

Ten vierde begon mijn spel, toen alle animaties en objecten waren toegevoegd, merkbaar te vertragen. Dit vereiste veel werk om animaties, geluiden en andere dingen te optimaliseren en vooraf te laden.

Als gevolg hiervan werd ik gedwongen de animatieatlassen die ik had gemaakt volledig opnieuw uit te voeren (zo bleek, niet voor de laatste keer) om het RAM-verbruik te verminderen. Comprimeer en snijd alle afbeeldingen bij, waardoor ze gemiddeld met 30% worden verkleind. Weiger 3x foto's als onnodig en beperk jezelf tot slechts 1x en 2x. Veel werk verrichten op het gebied van optimalisatie en het elimineren van geheugenlekken, enz. Bovendien was er veel werk nodig om de gameplay zelf te voltooien, aangezien alles in eerste instantie klaar lijkt en je alleen nog de laatste hand hoeft te leggen, maar het toevoegen van deze details vergt veel tijd. Over het algemeen duurde dit meer dan een maand, hoewel het niet erg intensief werk was van gemiddeld 4-5 uur per dag, omdat er geen mogelijkheid was om volledig aan het project deel te nemen. En begin november was alles min of meer klaar.

Upload vervolgens naar de App Store. Dankzij eerdere ervaringen waren er hier geen vragen. Gedurende de dag heb ik screenshots gemaakt, een eenvoudige beschrijving, het eerste pictogram dat in me opkwam (trouwens, zodra je een kant-en-klaar pictogram hebt, kun je het beter via deze service laten lopen: https://makeappicon.com /, je uploadt je pictogram daar en je krijgt het terug in alle vereiste maten en resoluties), en trefwoorden (ik heb ze geselecteerd met behulp van de service https://sensortower.com/, de site kan je heel veel nuttige informatie geven over uw of een andere applicatie, ook al is het abonnement niet goedkoop).

En nu is de applicatie beschikbaar in de AppStore. Hoera, hoera, maar niet echt.

Fouten, vreselijke remmen, ontbrekende afbeeldingen, crashes, enz. Dit is wat mij te wachten stond bij het testen op verschillende iPhones met verschillende versies van IOS. Het bleek meteen dat ondanks het feit dat de game prima werkt op IOS 9, hij op iOS 10 met vreselijke remmen draait en zo nu en dan het geluid verdwijnt. Ik was “verrukt” over het geschenk dat de 10 bevatte, maar ik kon nergens heen en ik bleef zoeken naar fouten en deze elimineren. Opnieuw moest ik het systeem voor het plaatsen van alle texturen in de applicatie volledig opnieuw uitvoeren, het systeem voor het afspelen van alle geluiden volledig opnieuw uitvoeren en een heleboel extra bugs repareren. De noodzakelijke conversie van code van Swift 2.0 naar Swift 2.3 bij het werken met de vernieuwde XCode liet een bijzonder warme indruk achter. Kortom, ik ben opnieuw ruim een ​​maand bezig geweest met het finaliseren van alles en pas op 13 december kon ik een min of meer werkende versie uploaden. Al is het duidelijk dat dit niet de laatste update is.

Zonder financiële investeringen en speciale kennis.

Hier volgen de eenvoudigste instructies voor het maken van een eenvoudige iOS-applicatie en het uitproberen ervan op uw apparaat. Op basis hiervan kunt u verder op het onderwerp ingaan en echt nuttige programma's maken.

Opmerking voor Windows-gebruikers: om applicaties voor iOS te maken, moet je OS X op een virtuele machine (VirtualBox, VMware) installeren. Dit proces is zeker niet eenvoudig en vereist afzonderlijke instructies.

1. Ga naar de App Store en installeer de XCode-ontwikkelomgeving:

Als u al XCode heeft, moet u deze bijwerken.

2. Start xCode en selecteer het menu-item Bestand -> Nieuw -> Project:

3. Selecteer het platform en applicatietype:

4. Geef informatie over het project. Houd er rekening mee dat we het toepassingstype "Universeel" hebben geselecteerd:

5. Klik op de knop Nieuwe map en geef de naam aan van de map waarin we de applicatiebestanden zullen opslaan:

6. Schakel het selectievakje Create Git Repository uit en klik op de knop Create. Als gevolg hiervan zou u naar het startscherm moeten gaan om aan de applicatie te werken:

7. Klik op het item Hoofdverhaalbord Sleep in het rechtermenu het element naar het hoofdveld Label en voeg er tekst aan toe Hallo_wereld:

8. Nu moeten we een pictogram voor de applicatie maken. We selecteren een foto en uploaden deze naar mapappicon.com:

9. We wachten tot de webapplicatie klaar is met werken en geven uw e-mailadres op om het archief met pictogrammen te ontvangen:

10. Keer terug naar XCode en selecteer sectie in het linkermenu Activa.xactiva:

11. Open het archief vanuit de e-mail en sleep pictogrammen van daaruit naar de XCode-werkruimte:

12. Selecteer een van de apparaatsimulators, klik op de startknop van de applicatie (zwarte driehoek) en schakel deze in op uw Mac Ontwikkelaarsmodus:

13. We proberen opnieuw te beginnen. We wachten tot iOS op de simulator is geladen:

14. Zorg ervoor dat de applicatie werkt:

We kijken naar de voltooide applicatie op het apparaat

Nu kunt u zien hoe de applicatie op het apparaat werkt. Zorg ervoor dat u over de nieuwste versies van XCode en iOS beschikt voordat u de instructies volgt.

1. Laten we naar gaan xCode -> Voorkeuren -> Rekeningen en voeg uw Apple ID toe:

2. Sluit het iOS-apparaat aan op de computer:

3. Selecteer het gewenste apparaat in de lijst en klik op de startknop. Wij wachten nog even.

4. Als er een bericht over beveiligingsproblemen verschijnt, ga dan op het iOS-apparaat naar Instellingen -> Basis -> Apparaatbeheer en sta toe dat applicaties van de ontwikkelaar met uw Apple ID worden uitgevoerd:

5. Ga naar het bureaublad en zoek het nieuwe applicatiepictogram:

6. Lancering:

7. Koppel het apparaat los van de computer. Nu kan de applicatie worden gebruikt.

Wat te doen als je meer wilt?

Met behulp van wetenschappelijk porren en Google kun je de bovenstaande reeks acties uitbreiden en een meer functionele applicatie creëren. Maar u kunt het alleen op uw eigen apparaten gebruiken.

Apple stelt immers zeer hoge eisen aan applicaties. De App Store Review Guidelines omvatten 29 punten en meer dan honderd subpunten. Om een ​​applicatie hieraan te laten voldoen en geaccepteerd te worden voor publicatie in de winkel, heeft de ontwikkelaar een grote hoeveelheid technische kennis nodig.

Als u hoogwaardige iOS-applicaties wilt maken die bedoeld zijn voor massaal gebruik,