• Советы начинающим iOS разработчикам

      Если не знаешь, надо не бояться, а узнавать.
      Айн Рэнд “Атлант расправил плечи”



      Добрый день, меня зовут Игорь Томич и я лектор курсов iOS-разработки и сооснователь онлайн курсов Master Up. Это мой первый пост в наш корпоративный блог, в котором я решил поделиться советами для начинающих iOS-разработчиков. Свое первое приложение для iOS я начал писать в начале 2009 года, а в мае 2012 году провел первый курс обучения по рарзработке под эту же платформу и к этому времени у меня скопилось достаточно “часто повторяемых ошибок” и путей их решения.
      Читать дальше →
    • Жизненный цикл UIViewController'a

        Большинство прикладных приложения под iOS таким или иным образом используют UIViewController'ы. Там где UIKit фрэймворк — там и UIViewController'ы. Их много, они повсюду, они сидят в засадах и выглядывают из-за каждого угла. Поэтому, любой программист под iOS — будь он зеленым новичком, едва ступившим на тропу программирования, либо матерым профессионалом своего дела, должны знать о UIViewController'aх все.

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

        Так вот. В данном посте, я еще раз расскажу о жизненном цикле UIViewController'ов, расскажу о том, что и где стоит делать, и в каком случае. Пост ориентирован на разработчиков разных уровней, так что кто-то узнает для себя что-то новое, а кто-то найдет повод отпинать моменты, на которые стоит обратить внимание Junior'ов в команде.

        Всех заинтересовавшихся, прошу
        под кат
      • PaaS «все в одном»

          Хочу обратить внимание хабраюзеров на потенциально очень любопытный новый сервис: DotCloud.

          Чем он любопытен? Около трех лет назад появились первые более или менее популярные PaaS'ы (Platform as a Service): Heroku и Google App Engine, каждый из которых ориентирован на конкретный стек технологий (Ruby и Python соответственно). С тех пор разных PaaS'ов появилось довольно много, но ничего принципиально нового у них не было.

          Читать дальше →
        • Непредвзятый обзор Google+ после недели предвзятого пользования

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


            Читать дальше →
          • Книги, видео и другие материалы по разработке под iOS

              «Хочу программировать под iPhone — говори, что почитать...»
              Любимая девушка


              Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

              Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
              Читать дальше →
            • Редизайн Google Analytics: не просто красивые картинки

                С момента появления сервиса Google Analytics полный редизайн системы проводился только один раз: в 2007 году. С тех пор уже 4 года интерфейс Analytics не претерпевал значительных изменений. Функций тем временем становилось все больше и больше, и постепенно им стало тесновато в рамках привычного интерфейса.

                Профессиональные веб-аналитики «бьются» об ограничения системы каждый день: меню не раскрываются без перезагрузки страницы, поисковый трафик раскидан по отчетам со странной логикой, найти профиль по имени невозможно, если к вашей учетке Google подключено множество аккаунтов Analytics. Словом, чем чаще мы работали с системой, тем больше надеялись на изменения: и вот, наконец, наши просьбы услышаны.В новой бета-версии Google полностью изменила внешний вид Analytics и добавила в систему новые отчеты и возможности. Сразу скажу: новая версия вызвала у меня восторг! Обсуждать и исследовать нововведения можно очень долго, поэтому в первом обзоре остановимся лишь на самых важных.
                Читать дальше →
              • Wuala — революция облачного хранения!

                  Я был ужасно удивлён, почему на хабре нет ни одной статьи про Wuala.
                  Если коротко — это аналог Dropbox, но с некоторыми удивительными отличиями.
                  По умолчанию пользователю дается всего 1 гигабайт облачного пространства, но его бесплатно можно расширить если у вас есть свободное место, которым вы готовы поделиться с другими.
                  Постараюсь не затягивать статью, но первый блин, как известно, комом!
                  Читать дальше →
                • Проверка орфографии для Skype

                    В долгих поисках бесплатного словаря для Skype, я наткнулся на очень неплохое решение под названием Ursa Spell Checker. Наверняка это не единственное решение, и наверняка не самое лучшее, но тем не менее речь пойдет именно о нём.

                    Процесс установки и настройки очень прост:
                    1. Идем по этой ссылке и скачиваем программу.
                    На момент написания этого текста последняя версия — 1.6
                    2. Запускаем скачанный файл и устанавливаем программу.
                    3. После установки программа попросит ввести регистрационный ключ. Ключ бесплатен, его можно получить вот по этой ссылке.
                    Читать дальше →
                  • Strain It! — Валидация и приведение данных на PHP

                    Введение


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

                    Но после того как я перешел на PHP 5.3 меня потянуло написать новый валидатор на основе анонимных функций. А заодно еще раз потренироваться в их использовании. Мною ставились следующие требования к будущему классу:
                    • Декларативность (информация о валидации должна задаваться объектами/массивами)
                    • Гибкость (высокая эффективность кода, написанного с помощью этого класса)
                    • Скорость (ничего лишнего)

                    Уже после начала работ, мне пришла в голову мысль о том, что анонимные функции в этом классе можно использовать не только для валидации, но и для приведения данных к нужному виду (например к определенному типу). Добавив к списку требований еще одно («Универсальность») я смело переименовал класс в Strain.

                    Что же в итоге получилось… читаем ниже. Здесь я не буду претендовать на оригинальность решения и прочую ерунду. Если вам понравится такой подход, используйте его в своих проектах, а если нет — то нет. Для отчаянных любителей извращений исходники я опубликую в конце статьи.
                    Читать дальше →
                  • Libox ― новый бесплатный сервис для публикации медиаданных

                      imageБуквально сегодня в сети появился интересный сервис Libox. Все мы слышали про DropBox и ему подобные системы удаленного хранения данных. Libox отличается от подобных систем. Дело в том, что в случае с сетевыми хранилищами данные пользователя хранятся на удаленной машине компании, которая предоставляет услуги облачного сервиса.
                      Читать дальше →