1. Практика

Как создать своё первое iOS-приложение. Подробная инструкция от профессионалов

Спокойно, это не так сложно, как может показаться на первый взгляд

© © ВИКА ШИБАЕВА / ЦЕХ

На­учить­ся мо­биль­ной раз­ра­бот­ке не так труд­но: глав­ное — знать, с чего на­чать. Иль­дар Гиль­фа­нов, iOS Team­lead e-le­gion и экс­перт кур­са «iOS-раз­ра­бот­чик» он­лайн-уни­вер­си­те­та «Нето­ло­гия» счи­та­ет, что раз­би­рать­ся во всех сим­во­лах кода и язы­ках раз­ра­бот­ки луч­ше сра­зу на прак­ти­ке. Спе­ци­аль­но для «Цеха» он под­го­то­вил по­ша­го­вый план дей­ствий по изу­че­нию раз­ра­бот­ки на iOS и со­зда­нию сво­е­го пер­во­го при­ло­же­ния.




Ку­пи­те мак

Не хо­чет­ся на­чи­нать с пло­хих но­во­стей, но раз­ра­ба­ты­вать при­ло­же­ния под iOS (как и под дру­гие яб­лоч­ные ОС) мож­но толь­ко на ma­cOS. Но не спе­ши­те ста­вить крест на ка­рье­ре iOS-раз­ра­бот­чи­ка из-за до­ро­гой тех­ни­ки Ap­ple. Если вы толь­ко учи­тесь, рас­смот­ри­те ва­ри­ан­ты с вир­ту­ал­ка­ми или ха­кин­то­шем. Ин­струк­цию по при­ме­не­нию мож­но лег­ко най­ти в лю­бой по­ис­ко­вой си­сте­ме.

При по­куп­ке б/​​у тех­ни­ки про­верь­те сов­ме­сти­мость вер­сий ma­cOS и сре­ды раз­ра­бот­ки Xcode. Если вы не уве­ре­ны, что мак по­лу­чит ещё пару но­вых вер­сий ОС, луч­ше воз­дер­жать­ся от та­кой по­куп­ки.

Три ре­ко­мен­да­ции при вы­бо­ре мак:

  • 8 Гб опе­ра­тив­ной па­мя­ти (в неко­то­рых ма­ках её мож­но ме­нять);
  • SSD (его тоже мож­но по­ста­вить поз­же, за­ме­нив HDD);
  • 4 ядра (их по­ме­нять нель­зя, по­это­му по­ста­рай­тесь взять хотя бы 4).

Изу­чи­те Swift

Итак, мак у вас есть, и вы уже, на­вер­ное, хо­ти­те по­ко­рять рей­тин­ги App Store, но сна­ча­ла нуж­но осво­ить ин­стру­мен­ты, с ко­то­ры­ми вы бу­де­те ра­бо­тать. Са­мый важ­ный — это, ко­неч­но, язык про­грам­ми­ро­ва­ния Swift.

Swift очень дру­же­лю­бен к на­чи­на­ю­щим. Вы в этом убе­ди­тесь, на­пи­сав свою первую про­грам­му — Hello World. Это про­стей­шее при­ло­же­ние, ко­то­рое со­зда­ют все но­вич­ки в раз­ра­бот­ке на пер­вом уро­ке, оно вы­во­дит окно с ва­шим име­нем и при­вет­стви­ем. Его мож­но на­пи­сать даже, если вы еще не зна­е­те всех ин­стру­мен­тов язы­ка.

Бла­го­да­ря Swift play­ground в сре­де раз­ра­бот­ки Xcode мож­но на­чать пи­сать код, не раз­би­ра­ясь в са­мой сре­де раз­ра­бот­ки и осо­бен­но­стях си­сте­мы, а ещё — на iPad есть при­ло­же­ние Swift Play­grounds. Это на­сто­я­щий ре­дак­тор кода, в ко­то­ром мож­но раз­ра­ба­ты­вать неболь­шие при­ло­же­ния, игры и изу­чать Swift в ин­тер­ак­тив­ном учеб­ни­ке.

iOS-при­ло­же­ния раз­ра­ба­ты­ва­ют­ся в пол­но­цен­ных про­ек­тах. В них мож­но не толь­ко пи­сать код, но и ра­бо­тать с ре­сур­са­ми, ин­тер­фей­са­ми, те­ста­ми, а так­же на­стра­и­вать и пуб­ли­ко­вать про­ект.

Не за­бы­вай­те прак­ти­ко­вать­ся. Если вы обу­ча­е­тесь са­мо­сто­я­тель­но, и в до­ступ­ных вам кни­гам или ве­би­на­рах нет прак­ти­че­ских за­да­ний, при­ду­май­те их сами. За­пус­кай­те при­ме­ры кода, про­буй­те сра­зу при­ме­нить на прак­ти­ке по­лу­чен­ные зна­ния, экс­пе­ри­мен­ти­руй­те.

Ос­нов­ные фрейм­вор­ки iOS

По­ми­мо язы­ка раз­ра­бот­ки вам нуж­но знать, как со­зда­вать поль­зо­ва­тель­ский ин­тер­фейс и пе­ре­хо­ды меж­ду экра­на­ми, как по­лу­чать дан­ные по сети и со­хра­нять ин­фор­ма­цию в па­мя­ти те­ле­фо­на, как за­пу­стить при­ло­же­ние на си­му­ля­то­ре и как ис­кать в нём ошиб­ки. Вам пред­сто­ит мно­го изу­чать са­мо­сто­я­тель­но и ра­бо­тать, но ста­рай­тесь не от­кло­нять­ся от сво­е­го пла­на и не за­ка­пы­вать­ся в изу­че­ние ненуж­ных вам сей­час тех­но­ло­гий.

Для на­ча­ла со­сре­до­точь­тесь на изу­че­нии UIKit — это фрейм­ворк для со­зда­ния ин­тер­фей­са iOS-при­ло­же­ния. Кноп­ки, тек­сто­вые поля, лейб­лы, спис­ки, ани­ма­ции, окна, же­сты, drag-and-drop — всё это и мно­гое дру­гое вхо­дит в UIKit.

Для со­зда­ния ин­тер­фей­са при­ло­же­ния в Xcode есть гра­фи­че­ский ре­дак­тор. Он поз­во­ля­ет лег­ко до­бав­лять нуж­ные эле­мен­ты на экран и за­да­вать пра­ви­ла их по­стро­е­ния. Им поль­зу­ют­ся не толь­ко на­чи­на­ю­щие, но и про­фес­си­о­наль­ные раз­ра­бот­чи­ки. Так что не трать­те вре­мя на вёрст­ку в коде.

Foun­da­tion — вто­рой по важ­но­сти си­стем­ный фрейм­ворк. С его по­мо­щью вы бу­де­те ра­бо­тать с да­та­ми, ре­сур­са­ми, фай­ло­вой си­сте­мой, дан­ны­ми поль­зо­ва­те­ля и се­тью. Часть его обя­зан­но­стей за­бра­ла на себя Swift Stan­dard Li­brary. На­при­мер, стро­ки и кол­лек­ции. Но Foun­da­tion всё рав­но оста­ет­ся важ­ным ком­по­нен­том си­сте­мы.

Пла­ни­ро­ва­ние

Во вре­мя изу­че­ния си­стем­ных фрейм­вор­ков вы мо­же­те на­чать ра­бо­ту над соб­ствен­ным при­ло­же­ни­ем. Воз­мож­но, это бу­дет про­сто to-do лист. Или у вас на те­ле­фоне есть очень по­лез­ное при­ло­же­ние, но оно чем-то не устра­и­ва­ет, и вы хо­ти­те сде­лать своё. А мо­жет у вас есть су­пер идея для со­вер­шен­но но­во­го при­ло­же­ния. В лю­бом слу­чае, для на­ча­ла вам нуж­но опре­де­лить­ся с тем, что бу­де­те де­лать:

  • Про­ана­ли­зи­руй­те по­хо­жие при­ло­же­ния в App Store. Это по­мо­жет по­нять, чего не хва­та­ет поль­зо­ва­те­лям ва­ших кон­ку­рен­тов.
  • Со­ставь­те спи­сок функ­ций сво­е­го при­ло­же­ния. За­пи­ши­те все свои идеи, что­бы не за­быть.
  • Вы­бе­ри­те из них несколь­ко са­мых важ­ных. Это бу­дет ваш объ­ём ра­бо­ты на пер­вый ре­лиз.

Важ­ны­ми яв­ля­ют­ся ба­зо­вые функ­ции при­ло­же­ния. То есть те, без ко­то­рых оно не име­ло бы смыс­ла. При­ло­же­ние, со­сто­я­щее толь­ко из та­ких функ­ций, на­зы­ва­ет­ся MVP (Min­i­mum Vi­able Prod­uct). По­ста­рай­тесь так­же до­ба­вить в спи­сок несколь­ко функ­ций, ко­то­рые от­ли­ча­ли бы ваше при­ло­же­ние от кон­ку­рен­тов и пред­став­ля­ли бы для поль­зо­ва­те­ля осо­бую цен­ность.

Пора пе­ре­хо­дить к ди­зай­ну. Нач­ни­те с ка­ран­даш­ных на­брос­ков, а если хо­ти­те соз­дать несколь­ко на­сто­я­щих ма­ке­тов, не обя­за­тель­но осва­и­вать слож­ные при­ло­же­ния. Мож­но огра­ни­чить­ся даже Keynote.

Ко­неч­но, вы не смо­же­те за­ме­нить про­фес­си­о­наль­но­го ана­ли­ти­ка, мар­ке­то­ло­га и ди­зай­не­ра, но если вы ра­бо­та­е­те в оди­ноч­ку, вам при­дёт­ся са­мо­сто­я­тель­но вы­пол­нить эти шаги. Очень важ­но опре­де­лить и за­фик­си­ро­вать объ­ём ра­бо­ты. Ведь лю­бая цель долж­на быть кон­крет­ной и до­сти­жи­мой. Ина­че вы рис­ку­е­те ни­ко­гда не за­кон­чить своё при­ло­же­ние.

Раз­ра­бот­ка

По­ста­рай­тесь за­ра­нее по­ду­мать над тем, что и как у вас бу­дет ре­а­ли­зо­ва­но в коде. Ко­неч­но, не имея опы­та, слож­но про­ду­мать ар­хи­тек­ту­ру при­ло­же­ния. Вот несколь­ко со­ве­тов, ко­то­рые мо­гут вам с этим по­мочь.

  • Изу­чай­те чу­жой код. В ин­тер­не­те есть огром­ное ко­ли­че­ство ста­тей с при­ме­ра­ми хо­ро­ше­го кода, а на Github мож­но най­ти ис­ход­ный код це­лых при­ло­же­ний.
  • На­учи­тесь на­хо­дить от­ве­ты на во­про­сы в ин­тер­не­те. По­ис­ко­вик, Stack Over­flow, до­ку­мен­та­ция, обу­ча­ю­щие ста­тьи и ин­струк­ции — в них вы най­де­те от­ве­ты на боль­шую часть сво­их во­про­сов.
  • Най­ди­те че­ло­ве­ка или со­об­ще­ство, что­бы за­да­вать во­про­сы, на ко­то­рые най­ти от­вет не по­лу­чи­лось. И если вы хо­ти­те по­лу­чить хо­ро­шие от­ве­ты, на­учи­тесь за­да­вать пра­виль­ные во­про­сы — по­дроб­ные.

Пора от­кры­вать Xcode и при­сту­пать к ра­бо­те. Воз­мож­но, вы нач­не­те с экра­на ав­то­ри­за­ции или с ос­нов­но­го экра­на, а мо­жет быть, с со­зда­ния об­щей ар­хи­тек­ту­ры при­ло­же­ния. В лю­бом слу­чае, со­хра­няй­те по­ря­док с са­мо­го на­ча­ла про­ек­та:

  • груп­пи­руй­те фай­лы по пап­кам;
  • уда­ляй­те неис­поль­зу­е­мый код;
  • при­дер­жи­вай­тесь сво­е­го код­стай­ла;
  • не дуб­ли­руй­те код;
  • не до­пус­кай­те раз­рас­та­ния вью кон­трол­ле­ра (MVC не за­став­ля­ет пи­сать весь код в кон­трол­ле­ре).

Вам при­дёт­ся взять на себя и обя­зан­но­сти те­сти­ров­щи­ка. Обя­за­тель­но про­ве­ряй­те всё, что де­ла­е­те. Если что-то мо­жет пой­ти не так, оно пой­дет не так. По­это­му про­ве­ряй­те все сце­на­рии, а не толь­ко по­зи­тив­ные. По­лез­но дать своё при­ло­же­ние дру­го­му че­ло­ве­ку. Это поз­во­лит най­ти ошиб­ки не толь­ко в ре­а­ли­за­ции, но и в са­мой кон­цеп­ции при­ло­же­ния.

Вы­клад­ка в App Store

Ещё одно пре­пят­ствие для неза­ви­си­мых раз­ра­бот­чи­ков — это необ­хо­ди­мость пла­тить $100 за воз­мож­ность вы­ло­жить своё при­ло­же­ние в App Store. О том, как за­ре­ги­стри­ро­вать­ся, в ин­тер­не­те ин­фор­ма­ции мно­го, ее най­ти лег­ко.

По­сле ре­ги­стра­ции ак­ка­ун­та мож­но пе­ре­хо­дить к пуб­ли­ка­ции. Для это­го нуж­но вы­брать в Xcode меню Prod­uct->Archive. По­сле ар­хи­ва­ции — на­жать кноп­ку Dis­trib­ute App и до­ждать­ся вы­груз­ки.

При­ло­же­ние по­па­да­ет в App Store Con­nect. На этом сай­те вам нуж­но за­пол­нить ин­фор­ма­цию о при­ло­же­нии, до­ба­вить скрин­шо­ты и ин­фор­ма­цию для ре­вью­ве­ров Ap­ple. Да, ре­вью про­хо­дить обя­за­тель­но. Озна­ко­мить­ся с пра­ви­ла­ми мож­но тут. От­ча­сти это ру­лет­ка, но если сле­до­вать всем пунк­там, то ве­ро­ят­ность успеш­но­го ре­вью силь­но уве­ли­чи­ва­ет­ся. Для на­ча­ла изу­чи­те ос­нов­ные при­чи­ны для от­ка­за. При­ло­же­ние долж­но:

  • Ста­биль­но ра­бо­тать и не вы­ле­тать.
  • Иметь ра­бо­чую ссыл­ку на поль­зо­ва­тель­ское со­гла­ше­ние.
  • Быть пол­но­стью за­кон­чен­ным, ра­бо­то­спо­соб­ным и функ­ци­о­наль­ным.
  • Да­вать чет­кие объ­яс­не­ния при за­про­се раз­ре­ше­ний на GPS, ка­ме­ру, кон­так­ты и так да­лее.
  • Иметь скрин­шо­ты и пол­ное опи­са­ние в ма­га­зине (их от­сут­ствие — одна из са­мых рас­про­стра­нён­ных при­чин для от­ка­за).
  • Быть уни­каль­ным. Нель­зя вы­кла­ды­вать ко­пию дру­го­го при­ло­же­ния (в том чис­ле сво­е­го соб­ствен­но­го).
  • Не ис­поль­зо­вать при­ват­ное API.

Обя­за­тель­но нуж­но ука­зать те­сто­вый ак­ка­унт для ре­вью­ве­ров в спе­ци­аль­ном поле, если в при­ло­же­нии есть ав­то­ри­за­ция. Если при­ло­же­ние со­дер­жит встро­ен­ные по­куп­ки, то сто­ит уде­лить осо­бое вни­ма­ние к тре­бо­ва­ни­ям раз­де­ле 3.1.

Если вам от­ка­за­ли, по­ста­рай­тесь разо­брать­ся, в чём при­чи­на, и ис­правь­те на­ру­ше­ния. Мож­но по­пы­тать­ся оспо­рить ре­ше­ние, но это не все­гда уда­ёт­ся. Если не по­лу­чит­ся, по­про­буй­те со­зво­нить­ся с ре­вью­ве­ра­ми и об­су­дить про­бле­му го­ло­сом.

Даль­ней­шее раз­ви­тие при­ло­же­ния

По­здрав­ля­ем! Ваше пер­вое при­ло­же­ние уже в ма­га­зине, а вы с на­деж­дой смот­ри­те на счёт­чик ска­чи­ва­ний. Но ра­бо­та ещё не окон­че­на. Даль­ше вам пред­сто­ит раз­ви­вать и под­дер­жи­вать своё при­ло­же­ние.

По­сле того, как вы раз­бе­ре­тесь с ос­но­ва­ми, пе­ре­хо­ди­те к изу­че­нию дру­гих тех­но­ло­гий. GPS, push-уве­дом­ле­ния, Ap­ple Pay, Siri, AR, ин­фор­ма­ци­он­ная без­опас­ность, ра­бо­та с ме­диа и огром­ное ко­ли­че­ство third party-сер­ви­сов и фрейм­вор­ков — изу­чая и ис­поль­зуя в ра­бо­те что-то но­вое, вы по­вы­ша­е­те свою цен­ность на рын­ке. По­это­му, если вы хо­ти­те быть хо­ро­шим раз­ра­бот­чи­ком, ни­ко­гда не оста­нав­ли­вай­тесь на до­стиг­ну­том.

Под­во­дя итог

В ста­тье мы по­ста­ра­лись от­ра­зить са­мые ба­зо­вые во­про­сы мо­биль­ной раз­ра­бот­ки на плат­фор­ме iOS и эта­пы со­зда­ния про­сто­го при­ло­же­ния. Спо­со­бов даль­ней­ше­го по­гру­же­ния в тему есть очень мно­го. Вы мо­же­те са­мо­сто­я­тель­но чи­тать про­филь­ную ли­те­ра­ту­ру и смот­реть обу­ча­ю­щие ро­ли­ки на Youtube, там их лег­ко най­ти. Мо­же­те смот­реть ве­би­на­ры или лек­ции с пре­по­да­ва­те­ля­ми, ко­то­рые так­же на­гляд­но по­ка­зы­ва­ют, что та­кое мо­биль­ная раз­ра­бот­ка.

Мы так­же пред­ла­га­ем об­ра­тить вни­ма­ние на до­пол­ни­тель­ные он­лайн- и офлайн-кур­сы, ко­то­рые дают го­то­вый план обу­че­ния, струк­ту­ри­ро­ван­ную ин­фор­ма­цию и до­пол­ни­тель­ную мо­ти­ва­цию не за­бро­сить обу­че­ние. Под­хо­дя­щих кур­сов сей­час на рын­ке пред­став­ле­но до­ста­точ­но мно­го, и если этот ва­ри­ант ка­жет­ся вам наи­бо­лее под­хо­дя­щим, сме­ло изу­чай­те об­ра­зо­ва­тель­ные про­грам­мы. Хо­ро­шая про­грам­ма долж­на преду­смат­ри­вать:

  • Зна­ком­ство с язы­ком про­грам­ми­ро­ва­ния Swift.
  • Изу­че­ние фрейм­вор­ков для со­зда­ния поль­зо­ва­тель­ских ин­тер­фей­сов, ра­бо­ты с се­тью, мно­го­по­точ­но­сти и хра­не­ния дан­ных.
  • Осво­е­ние сре­ды раз­ра­бот­ки, ме­то­дов по­ис­ка оши­бок и те­сти­ро­ва­ния.
  • Прак­ти­че­ские за­да­ния.
  • Воз­мож­ность за­дать во­прос пре­по­да­ва­те­лю и по­об­щать­ся с од­но­курс­ни­ка­ми.

Если все эти пунк­ты есть в вы­бран­ном вами кур­се, зна­чит ре­зуль­тат не за­ста­вит себя ждать, и вы на­пи­ши­те не одно свое мо­биль­ное при­ло­же­ние.