• Создание библиотеки для iOS

    • Tutorial

    Разработчики часто сталкиваются с типовыми задачами, которые появляются в новых проектах. Постепенно накапливается база вспомогательного кода, которая собирается в библиотеки и переносится из проекта в проект. И чем больше проектов, тем тяжелее становится поддерживать такие библиотеки.
    image

    Читать дальше →
    • +13
    • 9,2k
    • 7
  • Книга «Swift 2.2. Основы разработки приложений под iOS и OS X»

      Всем привет! Мы в феврале писали пост о книге «Swift. Основы разработки приложений под iOS». Недавно у нас вышло второе издание:

      image Данная книга содержит исчерпывающую информацию для всех желающих научиться программировать на замечательном языке Swift и создавать собственные iOS-приложения. Вы найдете не только теоретический материал, но и большое количество практических примеров и заданий, которые позволят постичь все тонкости нового языка. Дерзайте, ведь, изучив Swift, вы сможете создавать приложения для любой платформы — iOS, OS X, tvOS или watchOS.

      В сравнении с предыдущим изданием данная книга содержит следующие изменения и дополнения:
      — весь материал актуализирован в соответствии со Swift версии 2.2 и Xcode 7.3.
      — добавлено большое количество нового учебного материала. В частности, переработана глава 26. Теперь книга не просто обучает Swift, но и готовит вас к полноценной разработке приложений.
      ‰- учтены пожелания и замечания пользователей по оформлению и содержанию.
      ‰- исправлены найденные опечатки.
      Читать дальше →
    • Что нового в Swift 3?

        Как мы все давно знаем, Apple интегрировала Swift 3 в Xcode 8. Это первая версия языка с открытым исходным кодом, который работает как на macOS, так и на Linux. Если вы следили за процессом развития языка на Swift Evolution с декабря прошлого года и успели с ним поэкспериментировать в IBM sandbox, вы уже наверное поняли, что в нем появилось множество изменений. Совершенно уверен, что при компилировании существующего проекта в Xcode 8, ваш код удивит вас наличием ошибок. Но это поправимо. Давайте познакомимся с некоторыми изменениями в новой версий языка.
        image
        Читать дальше →
      • Почему супер-мега-про машинного обучения за 15 минут всё же не стать

        • Tutorial
        Вчера я опубликовал статью про машинное обучение и NVIDIA DIGITS. Как и обещал, сегодняшняя статья — почему всё не так уж и хорошо + пример выделения объектов в кадре на DIGITS.

        NVIDIA подняла волну пиара по поводу разработанной и имплиментированной в DIGITS сетки DetectNet. Сетка позиционируется как решение для поиска одинаковых/похожих объектов на изображении.


        Читать дальше →
      • Реверс-инжиниринг процедурной генерации в No Man's Sky

        • Перевод


        No Man’s Sky — это игра про исследование космоса, в которой используется технология процедурной генерации игрового окружения и ресурсов (текстур, моделей, рельефа и т.д.). Я был в восторге, когда объявили о её разработке в 2013 году, не только из-за самой игры, но в основном из-за возможности изучить игровые файлы и узнать, как она работает. После выпуска игра получила самые противоречивые отзывы, но мне всё равно интересно, что же происходит у неё внутри.

        Если вы установите игру, то увидите, что по объёму она очень невелика, и это действительно так. Основная причина этого в том, что игра работает с очень ограниченным набором ресурсов и с помощью процедурной генерации создаёт на их основе буквально сотни вариантов. Я сосредоточусь на контенте, связанном с 3D-моделями игры, потому что для меня они всегда наиболее интересны. Статья будет разделена на три основные категории: геометрия, текстуры и анимации.
        Читать дальше →
      • Как стать супер-мега-про машинного обучения за 15 минут

        • Tutorial
        image

        Недавно на Хабре проскакивал пост vfdev-5 о DIGITS. Давайте поподробнее разберёмся что это такое и с чём его едят. Если в двух словах. Это среда, которая позволяет решить 30-50% задачек машинного обучения на коленке в течении 5 минут. Без умения программировать. Ну, при наличии базы, конечно. И более-менее адекватной карточки от NVIDIA.
        Читать дальше →
      • Удлинение геймплея и создание реиграбельности

          Иногда игра, над которой вы/ты работал/ли, оказалась слишком короткой и вам в голову просто вбилось, что нужно её растянуть. Какими способами это можно сделать? Почему удлинение игрового процесса схожа с реиграбельностью? Да потому что они оба преследуют цель, чтобы в игру играли как можно больше. Заранее предупрежу, что это не всегда хорошая идея, удлинять геймплей игры.


          Читать дальше →
          • +6
          • 11,9k
          • 6
        • Книга «Многопользовательские игры. Разработка сетевых приложений»

            image Привет, Хаброжители! Ранее мы Вас спрашивали переводить ли книгу «Multiplayer Game Programming: Architecting Networked Games (Game Design)». Недавно новинка пришла из типографии.

            В этой книге подробно рассматриваются все основные понятия, необходимые для создания сетевых многопользовательских игр. Вначале мы познакомимся с основами сетевых взаимодействий: как работает Интернет и как выполняется пересылка данных на другие компьютеры. Далее, после закладки фундамента, будут рассмотрены основы передачи данных в играх, как подготавливать игровые данные к передаче по сети, как изменять содержимое игровых объектов по сети и как организовать взаимодействие компьютеров, вовлеченных в игру. Затем мы поговорим о том, как компенсировать ненадежность соединения и задержки при передаче данных по сети и как обеспечить масштабируемость и безопасность игрового кода. В главах 12 и 13 рассматриваются службы объединения игроков для выделенных серверов и использование облачного хостинга — две темы, чрезвычайно важные для современных сетевых игр.
            Читать дальше →
          • Настройки безопасности iOS 10, на которые следует обратить внимание

              Сегодня Apple выпустила iOS 10. Пользователи iPhone 5+, iPad mini 2+, iPad 4, iPad Air 1/2, iPad Pro, а так же iPod touch 6 уже могут установить обновление на свои устройства. О функциях этой новой версии мобильной ОС от Apple уже достаточно написано в различных обзорах, так что не будет повторять эту информацию еще раз. Вместо этого, остановимся более детально на ее настройках конфиденциальности и безопасности. Отметим, что в iOS 10 Apple переключилась на более безопасный механизм доставки обновлений — протокол HTTPS. Этой новой security функцией Apple исправляет уязвимость с идентификатором CVE-2016-4741, которая позволяла атакующим удаленно блокировать доставку обновлений устройству с iOS. Apple также исправила проблему с OTA-обновлением iOS 10 для устройств, на которую уже успели пожаловаться некоторые владельцы устройств iDevice.

              Читать дальше →
            • Мой путь программиста. От студента-QA до удаленного Java-разработчика

              Привет Хабр! В этой статье я хочу рассказать о своем пути в области IT. На данный момент он занял у меня уже 6 лет, и еще отнюдь не завершен. Я начинал как QA инженер еще будучи студентом, а сейчас я работаю удаленно через Upwork на довольно крупную американскую компанию. Нет смысла указывать конкретные компании, в которых я работал, поэтому все названия будут в стиле “вот эта вот” и “другая”.

              Итак, 6 лет. Не так уж и много, и, честно говоря, я уверен, что не знаю практически ничего полезного и не являюсь выдающимся разработчиком. Но этого срока было достаточно, чтобы получить определенный опыт, поэтому я позволю себе делать некоторые выводы и даже давать маленькие советы тем, кто еще в самом-самом начале своего пути.
              Читать дальше →
            • Архитектура сетевого ядра в iOS-приложении на Swift 3. Часть 1

              • Tutorial

              Сетевое ядро как часть приложения


              Для начала немного поясню, о чем пойдет речь в данной статье. Сейчас большинство мобильных приложений, на мой взгляд, являются клиент-серверными. Это означает, что они содержат в составе кода сетевое ядро, отвечающее за пересылку запросов и получение ответов от сервера. Причем речь вовсе не о сетевых библиотеках, которые берут на себя ответственность по «низкоуровневому» управлению запросами вроде пересылки REST-запросов, построения multipart-тела, работы с сокетами, веб-сокетами, и так далее. Речь идет о дополнительной обвязке, которая позволяет управлять запросами, ответами и данными состояния, характерными конкретно для вашего сервера. Именно в вариантах реализации этой обвязки и заключены основные проблемы сетевого уровня во многих мобильных проектах, с которыми мне приходилось работать.

              Данная статья ставит целью привести один из вариантов архитектурного решения по построению сетевого ядра приложения, к которому я пришел после долгого времени работы с разными моделями и различными серверными API, и который на данный момент является наиболее оптимальным для задач, встречающихся мне в процессе работы над проектами. Надеюсь, этот вариант поможет вам разработать хорошо структурированное и легко расширяемое сетевое ядро, если вы начинаете новый проект или модифицируете существующий. Также буду рад услышать ваши советы и комментарии по улучшению кода и/или предложенной архитектуры. И да, статья из-за большого объема будет выпущена в двух частях.

              Подробности под катом.
              Читать дальше →
            • Стэнфордские курсы «Разработка iOS приложений» — неавторизованный конспект лекций на русском языке и 2015?



              Я разместила иконки курсов Стэнфордского университета по разработке приложений на iOS в обратном хронологическом порядке. На первом месте стоит иконка Swift — нового языка программирования для создания приложений на iOS, объявленного на WWDC 2014. Кроме Swift реализована новая версия iOS — iOS 8. Уже известно, что Стэнфордский университет запустит зимой 2015 года новый курс CS193P с неизвестным пока названием (может быть будет что-то вроде «Developing iOS 8 Apps for iPhone and iPad»). Лектор тот же — профессор Paul Hegarty.
              В традиции Стэнфорда выкладывать курс CS193P на iTunes U в виде бесплатного курса обучения, но делают это они со сдвигом во времени, чтобы не мешать платному обучающему процессу, так что в феврале-марте 2015 года (как это было в 2013 году) можно ожидать постепенное появление лекций на iTunes U. Так что время есть.
              Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (смотри Github ).
              Для подготовки к перспективному курсу по iOS 8 разместила на своем сайте «Разработка iOS приложений» неавторизованные конспекты лекций, тексты домашних заданий и примеры их решения на русском языке для последнего доступного в настоящее время обучающего курса «Developing iOS 7 Apps for iPhone and iPad», запущенного Стэнфордским университетом в семестре «осень 2013 — зима 2014 года» на iTunes U.

              Читать дальше →
              • +11
              • 47,2k
              • 7
            • Доступны Стэнфордские курсы CS193P Весна 2016: Разработка iOS 9 приложений с помощью Swift



                Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes. Это долгожданное обновление предыдущего курса по iOS 8 и Swift.
                Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.

                Этот курс в течение 10 недель читает профессор Пол Хегэрти. Он не только высвечивает множество нюансов операционной системы iOS и языка программирования Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014, 2015). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.
                Читать дальше →
                • +10
                • 20,8k
                • 5
              • Семь этапов создания игры: от концепта до релиза

                  Как создать свою игру? Сколько на этом можно заработать? Какая нужна команда? Каковы ключевые этапы разработки и что нужно делать команде на каждом этапе? Ответ на эти вопросы – в открытой лекции по разработке игр в рамках программы «Менеджмент игровых интернет-проектов», которую разместили наши партнеры — открытая система электронного образования Универсариум. Вот здесь можно посмотреть открытую лекцию:


                  А под катом вы найдете краткое текстовое описание.


                  Читать дальше →