Как написать игру на ios

iOS – одна из самых популярных операционных систем в мире. Устанавливаемая только на устройствах Apple, она практически лишена проблем с совместимостью. Магазином AppStore пользуется более 100 млн. пользователей в сутки – такая посещаемость дает начинающему разработчику игр серьезную мотивацию для создания приложения. В небольшом обзоре мы разберемся с основами разработки игр для этой операционной системой. Поехали.

Что изучать, если ничего не знаешь?

Для изучения программирования вообще и в частности для iOS необходимо знать довольно много. Математика, логика, алгоритмы и структуры данных могут не пригодиться вначале, но позже обязательно понадобятся. Также необязательно в совершенстве знать архитектуру компьютеров и мобильных устройств, но разобраться с основами информатики (системами исчисления, скоростью работы программ и эффективностью алгоритмов) крайне желательно.

Освоив базу, переходите к глубокому изучению операционных систем iOS/iPadOS. Ну и конечно необходимо знание одного из двух «яблочных» языков программирования: Objective-C или Swift.

Objective-C был создан в начале 80-х годов в компании NeXT, основанной одним из учредителей Apple – Стивом Джобсом. Язык первоначально использовался для операционной системы NeXTSTEP, от которой, впоследствии, произошли OS X и iOS.

Его применяли для разработки всех программных продуктов Apple, пока не появился Swift, имеющий ряд преимуществ, выводящих его на лидирующие позиции в программировании для iOS.

Вот самые важные из них:

  • открытый исходный код,
  • поддерживается большим сообществом разработчиков,
  • быстрее и имеет простой синтаксис,
  • лучшее управление памятью,
  • поддерживает динамические библиотеки,
  • намного безопаснее (улучшенная защита данных),
  • возможность разрабатывать приложение в интерактивном режиме.

Тем не менее, Objective-C до сих пор используют многие ИТ-компании. В приложения на этом языке вложено немало средств, поэтому нет смысла прекращать его поддержку. Если вы только начинаете, уделите больше внимание Swift – для новых проектов он более перспективен.

Xcode

🍏 Разработка мобильных игр для iOS: с чего начать, что изучать и какие инструменты использовать

IDE от Apple используется для написания iOS-приложений. Xcode – это среда разработки с удобным графическим интерфейсом, заточенная под языки программирования Objective-C и Swift. Она включает отладчик, систему контроля версий и управлением устройствами, iPhone Simulator, инструменты профилирования, Interface Builder и многое другое.

Минимальные системные требования для Xcode:

  • Mac с macOS 11 и выше.
  • ОЗУ от 4 ГБ.
  • Не менее 8 ГБ свободного места на диске.
  • Mac, MacBook, iMac или Mac mini 2013-2015 или новее.

Xcode выпускается только для macOS, а значит вам понадобится Mac. Xcode не работает на iPad. Доступно несколько сторонних альтернатив для Windows, но они далеки от идеала. Добро пожаловать в инфраструктуру Apple, которая никогда не славилась открытостью.

Политика Apple в отношении загрузки приложений в App Store

Жесткие требования корпорации неоднократно заставляли разработчиков менять подход к созданию продуктов. Чтобы не потратить время напрасно, ознакомьтесь с рекомендациями Apple в отношении загружаемых на App Store приложений. Также стоит изучить список распространенных причин, по которым приложения отклоняются модераторами. Туда входят сбои, неработающие ссылки, недобросовестная реклама и неполная информация для пользователя. Также может блокироваться политический контент и контент для взрослых.

Разработчики часто ругают Apple за отсутствие гибкости. Бесконечные списки требований создают им проблемы, зато пользователи получают более качественные и более безопасные приложения. Не абсолютно безопасные (единичные случаи попадания вредоносного кода в AppStore известны) конечно, но в магазине Apple нет такого количества зловредов как в Google Play. Самое главное – аудитория AppStore гораздо охотнее расстается с деньгами, поэтому приложение для iOS намного проще монетизировать.

Помимо требований к техническим деталям есть набор рекомендаций по внешнему виду. Конечно, соответствие приложений одному стандарту не всегда означает хороший дизайн, но тут ничего не попишешь. Чтобы научиться грамотно проектировать интерфейс, посетите страницу Apple Human Interface Guidelines. Чтобы немного упростить это массивное руководство, из него выделили базовый набор правил (что можно, а что нельзя).

Корпорация Apple довольно консервативна в процессе проверки приложений, так что если вы сделаете что-то рискованное – это будет отклонено. Еще Apple не позволит вам интегрировать сторонние библиотеки в игру – учитесь пользоваться существующими средствами разработки.

Потребление памяти

Одна из проблем в iOS-разработке – медленная загрузка программы и потеря производительности. Чтобы сэкономить ресурс, избегайте чрезмерного использования функции загрузки png-файлов в GLSprite Demo, а при рисовании обрезайте спрайты более точно и плотно. Ограничивайте себя и не раздувайте приложение. Помните о том, что пользователи не любят долго ждать.

Удобные игровые платформы и инструменты для создания мобильных игр

🍏 Разработка мобильных игр для iOS: с чего начать, что изучать и какие инструменты использовать

Помимо двух наиболее популярных движков (Unity и Unreal engine 4) существует ряд неплохих платформ для разработки игр для iOS:

  • GameMaker – это набор средств для создания непрерывной игры с интерфейсом перетаскивания и экспортом различных инструментов. Система имеет собственный встроенный скриптовый язык, похожий на JavaScript и позволяющий вам экспортировать игру прямо на платформу iOS.
  • Используя Stencyl, вы можете создавать 2D-игры без каких-либо навыков программирования. Это игровой движок, позволяющий разрабатывать приложения для iOS, Windows, Linux или OS X, просто передвигая блоки с кодом.
  • LiveCode – мощная платформа для создания собственных игр и приложений. С помощью различных виджетов, расширений и библиотек вы можете ускорить процесс разработки. Это хороший вариант для обучения начинающих программистов.
  • Cocos 2D. Бесплатная программа для разработки игр. Построение логики реализуется за счет перемещаемых спрайтов. Обеспечивает реалистичную физику двухмерным объектам.
  • Kobold 2D – это улучшенная версия Cocos2D для IPhone. Она более удобна в использовании и имеет мощную функциональность.
  • PhoneGap – это бесплатная платформа для разработки приложений, использующая стандартные веб-API для всех типов мобильных операционок, в том числе для iOS.
  • Marmalade SDK – набор инструментов, библиотек, шаблонов и документов, необходимых для разработки приложений для мобильных ОС.
  • AppCelerator основанная на Eclipse легкая IDE с возможностью создавать приложения с нативным интерфейсом.

Как создать игру? Несколько советов начинающим

Чтобы начать создавать iOS-игры, необходимо учесть несколько моментов:

  • План. Продумайте все до мелочей – сюжет, физику, логику, реализацию объектов и магические плюшки, зафиксировав последовательность своих будущих действий в неком документе.
  • Графика. Весь графический интерфейс игры легко реализуется при помощи специальных движков и библиотек, рассмотренных в предыдущем пункте. Если вы хотите создать уникальный дизайн, вот несколько полезных инструментов с готовыми решениями: Assembly, Canva, Lighto, Font Candy, PicLab.
  • Звуки, музыка, диалоги. Все звуковое сопровождение можно создать самому, но проще воспользоваться готовыми наработками из популярных библиотек: PXL APPS, Sound Kit for Prototypes, octave и др.
  • Динамика. Чтобы оживить персонажей, без написания кода не обойтись. Однако описанные выше nocode-платформы с сервисом перетаскивания блоков также вполне подойдут.
  • Тестирование. Можно погонять уже готовое приложение самостоятельно, но без свежего беспристрастного взгляда будет сложно создать что-то стоящее. Тестирующих компаний немало – testflight, firebase, AWS Device Farm и пр. Выбор зависит от вас.
  • Релиз. После тестирования не пожалейте времени и устраните все мелкие баги. Поверьте, куда приятнее получать позитивные отзывы от пользователей приложения.

Полезные ссылки на обучающие материалы

🍏 Разработка мобильных игр для iOS: с чего начать, что изучать и какие инструменты использовать

  • Официальное руководство Apple для начинающих разработчиков. Здесь вы узнаете про настройку Xcode, структурирование приложения, его реализацию и отправку в App Store.
  • Swift. Основы программирования под iOS.
  • Видеоролики Apple по разработке. Отличный ресурс для изучения приемов и знакомства с базовым набором инструментов.
  • Возможности API. Обзор различных API для доступа к расширениям приложений, Touch ID, фотографиям, HealthKit и многому другому. Информация об интеграции продвинутых функций в приложение.
  • Документация по фреймворку UIKit от Apple. Информация будет полезна и новичкам и профессионалам.
  • Список iOS-приложений с открытым исходным кодом, размещенный на GitHub.
  • Статья Apple об оптимизации работы приложений.
  • Книга об устройстве iOS и macOS, автор – Джонатан Левин. Все самое необходимое для работы с операционными системами от Apple.

***

Для полноценной iOS-разработки потребуется macOS, но приобретение Mac новичку не всегда по карману. Даже на Mac mini последних конфигураций цены у Apple начинают кусаться. В этой ситуации можно воспользоваться ресурсом hackintosh.com или установить виртуальную машину. Дело тут даже не в железе, а в желании. Главное – не терять уверенности в себе и четко поставив цель, продвигаться к перспективной высокооплачиваемой профессии. Дорогу осилит идущий. Удачи!

Дополнительные материалы:

  • Карьерный гид от новичка до профи: дорожная карта iOS-разработчика
  • Где изучать iOS-разработку в 2021 году: каналы, блоги, комьюнити и курсы
  • 5 навыков, необходимых iOS-разработчику

Время на прочтение
4 мин

Количество просмотров 57K

Ровно год назад мы с другом решили по-быстрому сделать игру под iOS. Что из этого вышло, и сколько нам удалось заработать, я расскажу под катом.

Первые шаги

Вообще мы C++ разработчики и уже раньше пытались сделать кросс-платформенную игру, используя известные нам инструменты — Qt и C++. Тогда мы работали над игрой в жанре Tower Defence в новогоднем сеттинге. Для погружения в атмосферу инди-разработки предлагаю посмотреть пару видео из того времени:

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

Второе дыхание

В какой-то момент мы решили изучить нативные инструменты разработки. А именно SpriteKit на iOS. Я накидал демку на Swift, в которой было 1000 движущихся спрайтов с альфа каналом. Она заняла всего пару десятков строк кода и выдавала 60 fps на iPhone 5! Это был просто восторг! Низкий порог входа и бешеные возможности встроенного движка снова разожгли в нас энтузиазм!

На этот раз мы сформулировали основную цель так: Игра должна быть в AppStore! Она просто не может отправиться ко всем остальным недоделанным проектам на задворки гитхаба! Это означало, что игра должна быть настолько простой, чтобы её нельзя было не сделать. Пора начать доделывать дела!

Мы не могли себе позволить вручную создавать уровни, так как после создания игровой механики энтузиазм мог угаснуть. Поэтому думали сделать раннер или платформер с одним бесконечным уровнем. Как Subway Surfers, Doodle Jump, Nyan Cat или Flappy Bird. Также мы хотели минимизировать количество текста, чтобы не возиться с локализацией.

Вижу цель

Так что мы придумали? Беглое изучение инструментов разработки под iOS показало, что встроенный двумерный физический движок просто огонь! Разработка под него выглядит примерно так:

  • создать физический мир
  • добавить объект мяч в физический мир
  • добавить объект пол в физический мир
  • включить гравитацию!

Можете представить себе эмоции программиста, который до этого два месяца жонглировал указателями?

Разумеется мы решили использовать физику в качестве основного элемента игры. Какую игру с бесконечным уровнем на основе физики можно сделать с мячом? Чеканку мяча!

По задумке, игрок должен управлять ногой футболиста и чеканить (набивать) мяч. Цель игры — начеканить как можно больше. Считаются отскоки от ступни, колена и головы. При этом, обязательным фактором была монетизация. Хоть какая-нибудь! Тут дело даже не в заработке — нужно познакомиться с инструментами.

Сделаем за неделю

Так, цель мы сформулировали достаточно четко. Пора приступать! Мы забили на пары и ушли в отпуска с работы на неделю. За это время мы планировали сделать меню, сцену с игрой, подсчет очков и рекламу. Думаете, получилось?

Получилось! Мы реально успели сделать игру без дизайна и звуков за неделю. На инструментах, которыми. раньше никогда не пользовались (Swift + SpriteKit). Получилось нечто даже более-менее играбельное, правда с заглушками вместо нормальных текстур.

Да, у нас нет обучения, системы мотивации и еще много чего. Но этого уже достаточно, чтобы художник понял, как будет выглядеть итоговая организация элементов.

Или за месяц

Так, стоп! Художник? Мы что крупная корпорация? Нет, но программисты обычно рисуют не очень. Поэтому было решено отдать это дело на аутсорс. Тем более, что наша неделя на игру подошла к концу.

Мы заказали у знакомой художницы 15 текстур, чтобы все они были в одном стиле, пропорциональны и гармоничны. За деньги. Да, мы инвестировали не только время) Вообще, это был первый опыт работы с фрилансерами. Полезный опыт. Рекомендую.

Постепенно из набросков стал вырисовываться дизайн игры.

Ну или за полгода

План с новым дизайном был такой: просто по одной меняем старые текстуры на новые и вуаля — игра готова. Как бы не так! Все текстуры были немного под другими углами, другого размера, с другими местами стыковки. Это привело к тому, что вся верстка уехала. При этом существенно нарушилась физика ноги и её нужно было отлаживать заново.

Новые текстуры были большего разрешения и при замене в редакторе сцены Xcode постоянно вылетал! библиотеки у Apple, конечно отличные, но IDE мягко говоря могла быть и по стабильнее! Приходилось удалять 10 версию Xcode и ставить 9, чтобы хоть как-то работать с текстурами.

Кстати, на каком-то этапе обнаружился интересный баг с коленом, который мы назвали «Режим кузнечика».

И такие неочевидные проблемы вылезали одна за одной. А релиз все откладывался и откладывался. За следующие несколько месяцев работы по вечерам мы поправили баги, добавили звук и улучшили взаимодействие с пользователем. В итоге игра достигла хоть сколько-то приемлемого уровня и мы решили релизить!

Финишная прямая

Вот у нас готова игра. Что нужно для завершения проекта? Загрузить в AppStore. Всего то. Для этого нужен аккаунт разработчика, политика конфиденциальности, иконки и скриншоты всех размеров, а также описания на языках всех стран, где вы хотите размещаться.

Это все решаемые задачи, но они тоже отнимают время. Регистрация аккаунта разработчика стоит $100, иконки разных размеров делаются в онлайн-генераторах, как и политика конфиденциальности. Побыстрому накидали и перевели глупые описания и отправили на проверку.

Проверка занимает 2 суток. У нас отклонили 1 раз из-за каких-то законов Китая. Мы просто не стали там релизиться, и через двое суток наступил этот долгожданный момент! Игра в магазине! Мы шли к этому полгода! Мы довели проект до конца!

Таки шо по деньгам?

Схема монетизации в нашей игре была выбрана следующая. В момент, когда игрок теряет мяч, он может посмотреть рекламу и продолжить чеканить не потеряв очки. Так можно сделать только один раз. В техническом плане мы использовали Google Rewarded Video Ads.

Игра в магазине полгода. Она бесплатная. Из продвижения — только рассылка в институтские чатики и друзьям. За это время игру установили почти 250 человек. Не могу сказать, что мы довольны или огорчены этим результатом. Главное — это первый завершенный свой проект с монетизацией.

По затратам проект вышел примерно в 150 человекочасов, 2500р оплата художнику и $100 за аккаунт разработчика. Окупилось? Давайте посмотрим в дашбоард Гугл рекламы.

Да, за все время мы заработали $5.41~ 360 рублей. При затратах в 9000 рублей. Итого, доходность мероприятия: -96%. Да, заголовок немножко кликбейтный, простите)

Что в итоге?

В итоге у нас за плечами есть отличное путешествие от идеи до магазина, рабочее приложение, умение работать с фрилансерами, рекламой и AppStore. А самое главное — мы знаем, что можем доводить проекты до их логического завершения.

А что по поводу того, что заработали мы всего $5? Я вам скажу: Зато не на дядю!

P.S. Обязательно доделывайте дела. Если не получается — упрощайте, но доделывайте. Это очень полезное умение.

Удачи в ваших проектах!

Меня зовут Марк и я ученик Школы программистов. В этом блоге я расскажу, как создаю полноценную iOS-игру. До сих пор я работал над различными проектами, набивал шишки и получал бесценный опыт, но приложения, прошедшего путь от самого начала и до логического завершения, ещё не делал. Так что в этом и последующих постах я поделюсь своим первым опытом разработки полноценного продукта. Итак, поехали!

Немного об идее.

Вы когда-нибудь играли в Цивилизацию? Скорее всего да, но если вдруг не довелось, попробуйте, это одна из тех немногих игр, в которые поиграть разок-другой абсолютно не зазорно. Моя идея в том, чтобы переосмыслить Цивилизацию и адаптировать под мобильные устройства. Играть в неё можно будет как с ИИ, так и с другими пользователями.

civilization

 Что необходимо.

1. Разработка под iOS возможна только на macOS, здесь есть два варианта — использовать компьютер Mac или установить macOS на виртуальную машину.

macOs

2. Так как мы разрабатываем приложение под iOS, то нам никак не обойтись без специального инструмента для разработчиков — Xcode, он бесплатный.

3. Нам нужен инструмент, в котором мы будем создавать облик наших объектов, в качестве графического редактора подойдут Sketch, Adobe Illustrator, Photoshop, Gimp.

4. Желательно (но не обязательно) иметь устройство для тестирования.

Первые шаги.

Итак, мы разобрались с тем, что хотим создать, обзавелись всем необходимым и уже готовы ринуться в бой. Так давайте творить! Начнем с создания нового проекта в Xcode.

1. Открываем Xcode, нажимаем создать новый проект, выбираем платформу iOS и тип Game.

1_ios

ios_game

2. В появившемся окне даем имя нашему приложению, выбираем язык, на котором писать и технологию. В данном случае название — Grasp, язык — Swift, технология — SpriteKit. Done!

ios5

3. Последний эта здесь — выбираем директорию, в которую мы сохраним наш проект и готово, проект создан! Однако, нужно провести первый этап настройки.

4. В открывшемся проекте в разделе Deployment Info выбираем минимальную версию iOS, на которой можно будет использовать наше приложение, ориентацию экрана, которая будет поддерживаться в приложении. В данном случае iOS 8 и только Portrait orientation.

ios-6

НачалоТеперь предлагаю сделать несколько первых шагов, которые помогут нам двигаться быстрее в будущем. Создадим файл Useful.swift, в котором напишем несколько полезностей. Для этого в файловом меню нажмите правой кнопкой мыши -> Новый файл, затем выберите swift file.

mac_7

Открыв только что созданный файл, для начала добавим сокращений. Во-первых, это повышает скорость написания кода, а во-вторых, сильно сокращают длину строчек, тем самым повышается читаемость кода, конечно, при том условии, что строчек не слишком много и они интуитивно понятны. Для этого импортируем несколько полезных библиотек после строчки import Foundation:

import SpriteKit
import UIKit
import Darwin

Теперь наш файл должен выглядеть примерно так:

8_ios

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

 Давайте наведем порядок в нашем проекте.

Откроем файл GameScene.swift и удалим содержимое класса — творить лучше на чистом холсте. После этой несложной манипуляции файл должен выглядеть примерно так:

9_ios

Аналогичную процедуру проделываем с файлом GameViewController.swift

2) Удаляем файлы Actions.sks и GameScene.sks

3) Настроим иерархию, создадим папки Main, Design, Scenes.

В папку Main поместим файлы AppDelegate.swift, Info.plist, Main.storyboard, LaunchScreen.storyboard и GameViewController.swift
В папку Design поместим файл Assets.xcassets
А в папку Scenes GameScene.swift

После проделанных процедур наш проект должен выглядеть примерно вот так:

10_ios

Ну что ж, все подготовительные работы проделаны, не забывайте сохранять ваши проекты! Следующая часть

В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная!

Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS.

На все действия уйдет 10-15 минут.

Нам понадобятся:

  • Mac с установленным Xcode;
  • Устройство с iOS;
  • Изображение цветка;
  • Изображение травы.

Шаг 1. Создаем новый проект в Xcode

Запускаем xCode, выбираем пункт меню File -> New -> Project.

Шаг 2. Выбираем тип проекта

На следующем экране выбираем тип проекта – Game.

Шаг 3. Указываем основную информацию о проекте

Указываем название проекта и сверяем остальные настройки с картинкой.

Шаг 4. Выбираем место для папки с проектом

В открывшемся окне Finder указываем папку, в которой будем хранить проект. При необходимости можно воспользоваться кнопкой Create Folder в левом нижнем углу окна.

Шаг 5. Настраиваем игру

Теперь перед нами окно детальных настроек приложения. Снимаем галочку с Portrait в разделе Deployment Info, чтобы игра работала только в горизонтальном режиме.

Шаг 6. Смотрим на стандартный пример игры

Нажимаем на кнопку запуска симулятора в левом верхнем углу. Ждем некоторое время, пока симулятор загрузится. Кликаем на серое поле, чтобы появлялись космические корабли.

Шаг 7. Меняем космические корабли на цветы

В правом меню выбираем пункт assets.wcassets, потом делаем активным объект Spaceship и на место картинки с космическими кораблем перетаскиваем картинку с цветком.

Шаг 8. Смотрим, что изменилось

Снова запускаем эмулятор. Теперь вместо космических кораблей появляются цветы.

Шаг 9. Уменьшаем размер цветка

Уменьшим цветы в пять раз. В правом меню выбираем файл GameScene.swift и находим в нем строчки кода:


sprite.xScale = 0.5
sprite.yScale = 0.5

Заменяем их на:


sprite.xScale = 0.1
sprite.yScale = 0.1

Шаг 10. Добавляем траву в коллекцию картинок

Идем в assets.wcassets, находим плюсик (см. картинку), нажимаем на него и выбираем пункт меню New Image Set. Называем новый набор картинок Background (название должно быть точным) и перетаскиваем в него картинку с травой из Finder.

Шаг 11. Добавляем траву в код

Удаляем код, который делает фоновую надпись HelloWorld:


class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
 /* Setup your scene here */
        let myLabel = SKLabelNode(fontNamed:"Chalkduster")
        myLabel.text = "Hello, World!"
        myLabel.fontSize = 45
        myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
        
        self.addChild(myLabel)
}

На его место вставляем:


class GameScene: SKScene {
    var background = SKSpriteNode(imageNamed: "Background")
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        background.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2)
        addChild(background)
        
    }

Шаг 12. Тестируем игру на устройстве

Идем в Xcode -> Preferencies -> Accounts и добавляем свой Apple ID:
1. Подключаем iOS-устройство к компьютеру.
2. Выбираем устройство и жмем на кнопку запуска.
3. Если появляется сообщение о проблемах с безопасностью, идем на iOS-устройстве в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от нужного разработчика.
4. Находим на Spring Board иконку приложения и запускаем его.Теперь устройство можно отсоединить от компьютера и продолжать пользоваться приложением.

Если возникли какие-то проблемы, то обновите iOS и xCode.

В App Store такую игру не примут, но можно развлекаться на своих устройствах. Если проявить немного усердия, из этой основы можно сделать что-то действительно интересное с помощью Google и StackOverflow.

Не разбираясь в программировании, мы создали простую игру и потратили всего 10 минут. Чему же можно научиться за год интенсивного обучения под руководством опытных преподавателей?

Где учиться разработке под iOS?


Лучший вариант — поcтупить на факультет iOS-разработки в онлайн-университет GeekUniversity, созданный GeekBrains и Mail.ru. Целый год несколько вечеров в неделю вы будете изучать программирование под iOS. Занятия проходят в формате вебинаров и учиться можно в любой стране мира.

В GeekUniversity практикуют проектно-ориентированное обучение. За год вы создадите 4 собственных приложения для iOS:

  • Погодное приложение;
  • Мобильную игру;
  • Приложение для интернет-магазина;
  • Командный проект.

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

Какие знания вы получите на факультете iOS-разработки?

За год супер-интенсивного обучения ученики усваивают огромный объем знаний:

  • Навыки программирования на Swift
  • Навыки программирования на Objective C
  • Навыки разработки мобильных игр
  • Знание алгоритмов и структур данных
  • Понимание компьютерных сетей и операционных систем
  • Работа в команде
  • Методологии разработки: Agile, Scrum
  • Умение работать с GIT
  • Знание принципов ООП
  • Навыки успешного прохождения собеседований и общения с заказчиками
  • Навыки проектирования архитектуры, использования шаблонов проектирования singletone, adapter, factory, dependency injection
  • Навыки использования IOS SDK, карт, геолокации, push-уведомлений, анимаций и 3d-touch
  • Навыки разработки мобильных приложений под iOS
  • Навыки написания чистого кода

Это очень мощная теоретическая база, на основе которой можно вырасти в действительно крутого спеца, если не снижать темп и продолжать интенсивное обучение.

Что вас ждет после обучения?

Выпускники получают сертификат об окончании GeekUniversity, гарантированное трудоустройство и год онлайн-обучения английскому языку в подарок.

Узнайте больше о факультете о факультете iOS-разработки и запишитесь на подготовительные курсы здесь.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (7 голосов, общий рейтинг: 4.43 из 5)

🤓 Хочешь больше? Подпишись на наш Telegram.

undefined

iPhones.ru


В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная! Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS. На все действия уйдет 10-15…

  • Apple,
  • GeekBrains,
  • программирование,
  • Это интересно

Ирина Чернова avatar

ios_Deep_28.4-5020-79b081.png

Осваивать программирование лучше всего на практике. В этой статье мы пошагово создадим простую игру с игральными костями, а также оптимизируем её под любые диагонали экранов. Для работы вам потребуется iMac или Macbook с предустановленным Xcode. Писать приложение для iOS будем на Swift.

iOSPro_Headline_970x70-1801-ed3f8e.png

Создание проекта

В первую очередь следует создать новый проект: в нашем случае речь идёт об iOS-приложении «Single View Application»:

1_1_1-20219-ec6cb8.png

Далее просто вводим желаемые значения:

2_1_1-20219-c7992b.png

Теперь нажимаем «Next», сохраняя проект в нужной папке. Потом в левой части экрана Xcode находим Main.Storyboard и нажимаем «Создать интерфейс пользователя».

3_1_e1499895131746_1-20219-407853.png

Теперь можно переходить к следующему этапу.

Интерфейс пользователя

Справа снизу есть панель библиотек, выбираем там вкладку «Object».

4_1_1-20219-012d23.png

Далее находим элемент Label, а потом перетаскиваем его на Main.Storyboard. В результате соданный вами проект должен выглядеть приблизительно следующим образом:

5_1_e1499895226692_1024x719_1-20219-2692e7.png

На данном этапе не волнуйтесь относительно размещения элементов на экране, т. к. оптимизацией мы займёмся позже. Сейчас же введём название для элемента «The sum is:» во вкладке «Inspector Pane»:

6_2_1-20219-1cf381.png

Далее добавим в Main.Storyboard два элемента из Object, а конкретнее, Image View. После того, как добавим их на главный экран, их нужно будет сделать квадратными. В результате получим:

7_1_1-20219-7d371f.png

Останется добавить кнопку. Чтобы это сделать, найдём элемент Button в правом нижнем углу и перетянем его на главный экран.

8_2_1-20219-a220fa.png

И введём в файловом менеджере новое название для кнопки — «Roll».

9_1_1-20219-f5316f.png

Используем функцию Auto Layout

Auto Layout — одна из лучших функций в Xcode. С её помощью можно оптимизировать размещение элементов на экране под любой необходимый размер. Давайте сначала поместим 2 элемента Image View в Stackview, выбрав их на экране либо боковой панели с зажатой кнопкой «CMD»:

10_1_1-20219-19e2b1.png

Теперь нажимаем на кнопку «Embed In Stack», выставляем параметр Axis в позицию Horizontal и устанавливаем параметр Spacing в значение 40:

11_1_1-20219-b3b541.png

Если что-то пойдёт не так, можно нажать «CMD + Z» и повторить процедуру.
Теперь нужно добавить оставшиеся элементы в Stackview. Зажимаем «CMD», а потом выбираем их на экране Main.Storyboard. И выставляем параметр Vertical в поле Axis.

12_1_1024x346_1-20219-6aa8d9.png

Теперь нажимаем кнопку «Add New Constraints» и выставляем параметры, показанные на скриншоте:

13_1_1-20219-79f818.png

Осталось выбрать Stackview для всех элементов, а потом в поле Spacing установить значение 50.

Разумеется, это ещё не всё, ведь для работы приложения потребуется написать код.

Подключаем элементы к коду

В первую очередь соединяем визуальные элементы с ViewController.swift. При этом элементы UILabel и UIImageView должны быть типа @IBOutlet, а UIButton — @IBAction. Выполняем эту операцию с зажатой кнопкой «CTRL» и выбранным Assistant Editor. По итогу получим:

14_1_1024x544_1-20219-084f37.png

Добавляем графику

Теперь пришёл черёд для графики. Давайте скачаем архив с изображениями и добавим их в Assets.xcassets. Откроем архив и перетянем все элементы в проект за исключением папки icon.

15_1_1-20219-1a784b.png

По итогу Assets.xcassets должен выглядеть следующим образом:

16_2_1024x563_1-20219-f791ba.png

Вернёмся к экрану Main.Storyboard и выберем для каждого ImageView любое изображение игральных костей. Это следует делать в Attributes Inspector:

17_1_1024x501_1-20219-0ed940.png

Для добавления фонового изображения вставляем дополнительный ImageView и устанавливаем параметры, которые указаны на скриншоте:

18_1_1-20219-1f4ebe.png

Для нашего фона в Attributes Inspector выбираем изображение «table»:

19_1_1-20219-cc85c1.png

Дабы сделать текст читабельнее, изменим цвет и увеличим шрифт. Давайте выберем надпись, установим белый цвет и увеличим шрифт.

20_2_1-20219-da1aa1.png

Кроме того, стоит выбрать изображение для кнопки.

21_1_1-20219-0a29f0.png

Пишем код

Вот мы и дошли до кода. Откроем файл ViewController.swift и вставим в функцию кнопки следующее:

@IBAction func rollACTION(_ sender: UIButton) {

    label.text = "Hello Dice"
    leftImageView.image = UIImage(named: "Dice6")
    rightImageView.image = UIImage(named: "Dice6")
}

В результате мы программно поменяем значения элементов. Если мы запустим проект и нажмём на кнопки, то увидим эти значения на экране:

22_1-20219-a50f20.png

Завершающий шаг — написание функции, которая будет случайно выбирать значения для наших игральных костей. Также код станет выводить сумму чисел на экране. Создадим функцию rollDice(), а потом поместим в неё код:

 func rollDice(){

        let numberOne = arc4random_uniform(6) + 1
        let numberTwo = arc4random_uniform(6) + 1
        label.text = "The sum is: (numberOne + numberTwo)"
        leftImageView.image = UIImage(named: "Dice(numberOne)")
        rightImageView.image = UIImage(named: "Dice(numberTwo)")
    }

Далее надо удалить код внутри кнопки «rollACTION» и вставить туда rollDice(). Потом поместим это значение в функцию viewDidLoad():

// Функция, вызываемая при старте нашего приложения  
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        rollDice()
    }

// Значения для кнопки 
 @IBAction func rollACTION(_ sender: UIButton) {
         rollDice()
    }

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

23_1-20219-02e3ae.png

iOSPro_Headline_970x70-1801-ed3f8e.png

По материалам «How To Make A Dice Roll iPhone App».

Кто не мечтал создать свою игру для iPhone и iPad? Игровая индустрия сейчас развивается стремительными темпами, и желание попробовать себя в данном направлении вполне естественно. Многие боятся стать разработчиками игр, поскольку считают, что дело это непростое, требующее предельной концентрации и богатого опыта. Однако начать свой путь к мечте можно и без навыков программирования.

Как создать игру для iOS без начальных знаний? Фото.

Один из инструментов разработки двух- и трехмерных приложений и игр — игровой движок Unity. С его помощью создаются приложения как для Windows и OS X, так и для iOS, Android и Windows Phone. Кроме того, движок используют на приставках PlayStation 4, Xbox 360, Wii и других. Unity очень популярен среди таких разработчиков, как Blizzard, EA, Ubisoft, поскольку работа с движком довольно простая, интерфейс удобный и есть бесплатная версия. Редактор легко настраивать, он имеет несколько различных окон, что делает возможным отладку игры прямо в нем.

Сам проект в Unity поделен на уровни, которые также называются сценами — это отдельные файлы с игровыми мирами, содержащими свои наборы сценариев, объектов и настроек. Скрипты при этом взаимодействуют с объектами, которые содержат наборы определенных компонентов. А благодаря поддержке системы Level of Detail высокодетализированные модели заменяются на менее детализированные, если игрок находится на дальнем расстоянии.

Как создать игру для iOS без начальных знаний? Фото.

Редактор Unity действительно многофункциональный: система наследования объектов, скрипты в виде отдельных компонентов, поддержка физики твердых тел и ткани. Знакомство с движком на двух уровнях, включая интерфейс, создание скриптов, разработку ландшафта и создание мультиплеерной игры — это и многое другое предлагает курс «Разработчик игр» сервиса GeekBrains.

Данная профессия имеет оценку сложности 2/5, при этом максимально востребована на современном рынке, а освоить разработку можно всего за полгода. Чтобы приступить к данному курсу, вам не нужны навыки программирования: главное — интерес и желание. При этом перспективы, как мы с вами убедились, впечатляющие — создание игр для iOS, Android, Xbox, PlayStation и других платформ. Средняя зарплата по Москве и МО для разработчика игр составляет 102 тысячи рублей в месяц. Опытные сотрудники запросто увеличивают этот показатель в пару-тройку раз.

Как создать игру для iOS без начальных знаний? Фото.

Пусть к профессии «Разработчик игр» состоит из обучения C#, разбитого на два уровня, затем учеников ждут два уровня Unity, после чего они сразу приступают к командной разработке в компаниях и проектах. По итогам выпускник не просто получает резюме и сертификат о прохождении курса, но и имеет за плечами неплохое портфолио (в том числе создание мультиплеерных игр с помощью Unity 3D) и навыки командной разработки.

Как создать игру для iOS без начальных знаний? Фото.

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

Как создать игру для iOS без начальных знаний? Фото.

Самое главное, у GeekBrains есть компании-партнеры, которые рассматривают выпускников, закончивших обучение по профессиям, в качестве стажеров с возможностью дальнейшего трудоустройства. Успешно выполнив тестовое задание и пройдя собеседование, любой выпускник GeekBrains может начать карьеру в IT сразу после обучения. Еще бы, с таким-то резюме:

Как создать игру для iOS без начальных знаний? Фото.

Конечно, само обучение не бесплатное, но как сказал кто-то из великих, лучшие вложения — инвестиции в самого себя. А если еще сможете осуществить свою давнюю мечту, так вообще здорово. Дерзайте!

Обзоры приложений для iOS и MacРазработка приложений для iOSСоветы по работе с Apple

Вступление

Разработка мобильных игр — это моё хобби. Я не генерирую идеи для игр каждый день, но когда идея приходит ко мне, я стараюсь её реализовать. Почти все игры, которые я опубликовал — игры в жанре «Словесные». Да, те самые, в которые играет твоя мама.

Почему именно так? Моя выпускная работа в университете была на эту тему (почему именно такая — это отдельная история) и с тех пор я разрабатываю игры в этом жанре. Только изредка отклоняюсь и делаю что-то другое.

В данной статье, я опишу весь процесс разработки игры на конкретном примере.

Концепция

Идея, которая пришла мне в голову — совместить физическую составляющую action-игр и словесную составляющую словесных.

Концепция простая — поток блоков с буквами летит из левого края экрана в правый в зоне по центру экрана. От границы зоны блоки отсакивают. После вылета за правую часть экрана, блок исчезает, на его место респавнится новый блок и появлятся из левой части экрана.

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

1 день. Разработка основных механик

​Просто отрисовка | Попытки в физику | Все работает!

Игры я разрабатываю с помощью фреймворка SpriteKit на языке Swift. Иными словами, нативные игры для iOS. Не самое лучшее решение, но у меня есть на это свои причины.

Для начала сделал отрисовку границы зоны пролета блоков. Добавил спавн блоков с буквами. Передвижение блоков решил сделать с помощью физики — гравитация мира тянет блоки в правую часть экрана.

Это был самый трудный момент, ибо с физикой в SpriteKit я практически не работал. И гайдов в интернете не так много, из-за этого, многое делается наугад. Особенно коллизии объектов.

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

Добавил красоты в виде партиклов. Партиклы появлятся после нажатия на блок с буквой.

Самый бесячий момент дня — потратил около часа на проблему, которая появляется только если тестировать игру на физическом устройстве. Проблема в том, что зона safeArea не закрашивается цветом той UIView, что находится под ней. И не закрашивается только, если UIView под ней черного цвета. С белым и остальными цветами все отлично.

Если делать скриншот или записывать видео с физического устройства, то этого не видно. Единственное, как можно задокументировать — сфотографировать телефон на другой телефон.

Проблему так и не решил. На симуляторах ее нет, возможно, после залива в TestFlight проблема пропадет. Ну или я просто поменяю цвет фона.

2 день. Доводим игру до конца

Для начала решил изменить то, как показывать игроку те буквы, которые он уже собрал. Блоки сверху решил убрать и вместо этого вывести туда таймер. А в слове снизу [то слово, что необходимо собрать], подсвечивать зеленым цветом собранные буквы.

Добавил лейбл с очками — в центр за пролетающими блоками. При увеличении кол-ва очков, лейбл окрашивается в зеленый цвет на секунду.

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

И раз уже подбирал цвета, решил сразу нарисовать иконку. Тем более, она мне понадобится в главном меню. Иконку в этот раз сделал очень быстро и легко. Отрисовал типичный блок с буквой [Е есть и в английском и русском языках], стащил с интернета две картинки, объединил и перерисовал, добавил к блоку. Получилось очень круто, на мой взгляд.

Сделал главное меню, подсказку, экран окончания уровня и лидерборд.

Главное меню типовое, я его использую в последних проектах — иконка игры и три кнопки — начать игру, таблица лидеров, оценить игру. Подсказка и окончание уровня также типовые.

С таблицей лидеров проблем не возникло — воспользовался реализованным решением из другого проекта. Таблица лидеров у меня хранится в Firebase. При первом посещение таблицы лидеров пользователь вводит свой никнейм для таблицы.

Добавил финальные штрихи к игровой сцене — функциональные кнопки в верхней части экрана и новую игровую механику — бомбы и дополнительное время.

Чтобы игрок не тыкал бездумно на все блоки подряд, добавил бомбу. При нажатии на бомбу, уровень завершается. С другой стороны добавил положительный, для игрока, предмет — блок с с временем. Если нажать на него, то игроку дается дополнительные 10 секунд.

После этого добавил словарь английский слов в игру и локализовал интерфейс на аглийский [первоначально все делал на русском]. Добавил Flurry для отслеживания действий пользователя. И AdMob, для размещения рекламы.

Вчерашняя проблема с окрашиванием safeArea ушла сама собой, типичный Xcode.

​Памогите

Ну и в самом конце моя самая нелюбимая часть — производство скриншотов для AppStore. 3 основных устройства по 4 скриншота на двух языка.

Вечером второго дня отправляю игру на ревью в AppStore — неплохо!

3 день. Отказ в публикации

Кот победит? ​

Сомнения в том, что будут проблемы у меня возникли еще тогда, когда игра не прошла ревью за ночь — обычно именно столько времени это занимает. И правда, через 24 часа после отправки Apple отклонили игру.

Apple не понравилась ссылка на группу в ВК, которую я указал как адрес поддержки. И у них не сработала кнопка «Оценить приложение».

Странные причины для отказа. Во второй раз у меня отклоняют приложение. Но в прошлый раз, причина была более понятной.

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

Cсылку на вк, в качестве поддержки, я оставлял к остальным моим приложениям — никогда не возникало вопросов.

После поиска в интернете и вопросов в iOS-комьюнити, обнаружил, что чаще всего создают отдельную группу для приложения на фейсбуке и указывают ее. Так и сделал, после чего отправил на повторную проверку.

4 день. Публикация игры

Повторное ревью, обычно, занимает гораздо больше времени, но на этот раз мне повезло — через 20 часов после отправил на проверку, приложение опубликовали.

Итого

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

P.S. Приветствую любые вопросы, предложения и пожелания к игре!

Понравилась статья? Поделить с друзьями:
  • Как написать игру на html5
  • Как написать игру на html
  • Как написать игру на delphi
  • Как написать игру на c visual studio
  • Как написать игру морской бой на python