Как стать автором
Обновить
0

Objective C *

Компилируемый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Какие вопросы задавать на собеседовании

Время на прочтение11 мин
Количество просмотров44K
Каждый разработчик время от времени ищет работу и проходит собеседования. Кто-то хочет попробовать что-то новое, получить большую ЗП или попасть в компанию, в которую всегда мечтал. Не обошло это событие и меня стороной.

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

Чтобы в итоге собеседование не выглядело для соискателя как:


Статья в первую очередь будет полезна всем, кто ищет работу в среде iOS разработки или хоть как-то связан с набором IT специалистов: проводит технические собеседования или любые другие.

И добро пожаловать под кат.
Всего голосов 28: ↑23 и ↓5+18
Комментарии40

Статические анализаторы для Swift и Objective-C

Время на прочтение10 мин
Количество просмотров15K

Предисловие


Существует большое количество статей, посвященных статическим анализаторам для С/С++/С#, Java и т.д. Что касается исследований применения различных статических анализаторов для нативной разработки под MacOS/iOS, то им уделено гораздо меньше внимания.

Предлагается разбор применения статических анализаторов кода, используемых в различных проектах на ObjC и Swift. При этом, это не обзор, а скорее некоторые заметки применения различных инструментов, позволяющих находить ошибки того или иного рода в коде, начиная от утечек памяти и заканчивая поиском уязвимостей. Однако данные не претендуют на объективность и полноту сделанных выводов, а также на глубину анализа полученных результатов по каждому инструменту.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии18

Паттерны проектирования, взгляд iOS разработчика. Часть 1. Стратегия

Время на прочтение4 мин
Количество просмотров15K

Содержание:


Часть 0. Синглтон-Одиночка
Часть 1. Стратегия
Часть 2. Наблюдатель


Напомню, что в этой серии статей, я разбираю книгу "Паттерны проектирования" Эрика и Элизабет Фримен. И сегодня мы изучим паттерн "Стратегия". Поехали.


Откуда растут ноги (и крылья)


Авторы книги рассказывают нам историю о создании приложения SimUDuck. Начнем с реализации начального состояния приложения: у нас есть абстрактный класс Duck и два его наследника: MallardDuck и RedheadDuck. Тут же мы сталкиваемся с первой сложностью: в Objective-C и Swift нет абстрактных классов.


Выходим из ситуации...
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Управление светодиодной лентой WS2801 с использованием Raspberry Pi и iOS

Время на прочтение2 мин
Количество просмотров17K
Всем привет!
Эта статья содержит исходники приложения для операционной системы iOS, цель которого управление светодиодной лентой WS2801, подключенной к Raspberry PI.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии1

Истории

Паттерны проектирования, взгляд iOS разработчика. Часть 0. Синглтон-Одиночка

Время на прочтение6 мин
Количество просмотров35K
Я почув і забув.
Я записав і запам'ятав.
Я зробив і зрозумів.
Я навчив іншого, тепер я майстер.
(В. В. Бублик)


Небольшое вступление.


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


И именно эти слова и сподвигли меня на написание данной серии постов. Дело в том, что я — начинающий iOS разработчик, и я очень хочу разобраться в паттернах проектирования. И я не придумал лучшего способа, чем взять книгу "Паттерны проектирования" Эрика и Элизабет Фримен, и написать примеры каждого паттерна на Objective-C и Swift. Таким образом я смогу лучше понять суть каждого паттерна, а также особенности обоих языков.


Содержание:


Часть 0. Синглтон-Одиночка
Часть 1. Стратегия
Часть 2. Наблюдатель


Итак, начнем с самого простого на мой взгляд паттерна.


Одиночка, он же - синглтон
Всего голосов 31: ↑22 и ↓9+13
Комментарии33

Немного о Swift runtime или куда пропал NSObject

Время на прочтение11 мин
Количество просмотров29K
Привет друзья! Я из тех, кому скучно просто дергать за ниточки, торчащие из черной коробки, хочется увидеть все своими глазами, как оно работает под капотом. Мы поговорим с вами про рантайм, да-да рантайм. Для наших опытов рассмотрим старого доброго дедушку Objective C и революционного, но пока еще находящегося в стадии развития, Swift. Нам с вами понадобиться нырнуть практически на самое дно абстракций, которые заботливо придумали программисты Apple. Давайте немного разберемся, зачем вообще понадобилось разрабатывать новый язык. Я слышал много негативных отзывов в самом начале, особенно от уже матерых разработчиков Objective C. Если посмотреть повнимательнее на новый язык Swift, он на мой взгляд значительнее взрослее и серьезнее. Во-первых, он написал на языке С++ в отличии от Си, который лежит в основе Objective C. Я здесь высказываю только свои сугубо личные предубеждения, с которыми можно согласиться, можно и поспорить.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии17

33 iOS библиотеки с открытым исходным кодом, которые будут популярны в 2017 году

Время на прочтение5 мин
Количество просмотров24K
Отличного пятничного настроения, друзья!
Сегодня мы приготовили для вас полезный перевод поста основателя Ecler Studios Paweł Białecki, в котором он предлагает нашему вниманию 33 open source проекта для iOS разработчиков.
С помощью своего аккаунта в GitHub он открыл для себя множество перспективных инструментов и отобрал, по его мнению, лучшие из них для своих читателей.


Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии15

Анимации в iOS для начинающих. Модели, классы от Core Animation, блоки

Время на прочтение10 мин
Количество просмотров68K
Думаю, всем разработчикам хочется в той или иной степени украсить свои приложения различными эффектами. Android-отдел компании Live Typing уже выпустил две статьи на эту тему: про тип классов Animator и собственную библиотеку CannyViewAnimation, заменяющую им несовершенный ViewAnimator. Я представляю отдел iOS-разработки нашей компании и тоже хочу высказаться на тему, которая важнее, чем кажется.

Эта статья — введение в мир анимаций для iOS-приложений. Рекомендуется тем, кто никода не работал с анимациями, либо не понимает некоторые моменты в стандартных iOS-анимациях.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии3

Обработка препроцессорных директив в Objective-C

Время на прочтение9 мин
Количество просмотров4.9K

Язык программирования с препроцессорными директивами сложен для обработки, поскольку в этом случае необходимо вычислять значения директив, вырезать некомпилируемые фрагменты кода, а затем производить парсинг очищенного кода. Обработка директив может осуществляться во время парсинга обычного кода. Данная статья подробно описывает оба подхода применительно к языку Objective-C, а также раскрывает их достоинства и недостатки. Эти подходы существуют не только в теории, но уже реализованы и используются на практике в таких веб-сервисах, как Swiftify и Codebeat.



Swiftify — веб-сервис для преобразования исходников на Objective-C в Swift. На данный момент сервис поддерживает обработку как одиночных файлов, так и целых проектов. Таким образом, он может сэкономить время разработчикам, желающим освоить новый язык от Apple.



Codebeat — автоматизированная система для подсчета метрик кода и проведения анализа различных языков программирования, в том числе и Objective-C.


Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии6

Внедрение социальных сервисов в неигровое приложение

Время на прочтение7 мин
Количество просмотров3.4K
Современную реальность невозможно представить без социальных сетей и различных рейтингов. В связи с этой тенденцией мобильные игры и приложения активно «социализируются». Однако, в то время как для игр такое явление обыденно и закономерно, добавить фунционал социальной сети в неигровые приложения не каждому покажется очевидным решением. Тем не менее, наши давние партнеры и друзья — компания-разработчик музыкальных приложений Music Paradise — решились на подобный шаг. Сегодня мы делимся их кейсом под кодовым названием «Как мы первые социальные пады делали».

«В этой статье мы хотели бы поделиться опытом создания социальной платформы для меломанов на базе музыкального приложения DJ Mix Pads 2.

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



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

В данной статье мы коснемся различных аспектов работы с сервером, расскажем о некоторых дополнительных функциях, которые потребовались для введения социальной составляющей, и о том, как они были реализованы в продукте.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Мое знакомство с ReactiveCocoa

Время на прочтение13 мин
Количество просмотров16K
Честно говоря, я начала использовать ReactiveCocoa, потому что это модно. Я слышу как iOS разработчики говорят об этом фреймворке все время, и я едва могу вспомнить iOS Meetup без упоминание ReactiveCocoa.

image

Когда я только начала изучать ReactiveCocoa я не знала что это такое. «Реактивный» звучит действительно здорово, и «функциональный» звучит умно. Но после того как я поддалась искушению овладеть Reactive Cocoa я уже не могу себе представить написания кода без его использования.

ReactiveCocoa это фреймворк, который открывает окно в мир функционально реактивного программирования. Он позволяет извлечь выгоду из практического применения этой парадигмы, даже не требуя глубоких теоретических знаний FRP.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии1

Анимированные Линии в iOS

Время на прочтение8 мин
Количество просмотров10K
Доброго времени суток iOS-разработчики и им сочувствующие! Хочу поделиться с вами одной простой, но в то же время довольно симпатичной анимацией для текстовых полей и прочих вьюх на iOS. Думаю, каждый, кто хотя бы мельком сталкивался с CALayer и Core Animation вообще, знает об этих возможностях, а вот новичкам может быть интересно и натолкнет на изучение более глубоко Core Animation.
Всего голосов 12: ↑9 и ↓3+6
Комментарии3

AppCode 2016.3: поддержка Swift 3, новые настройки форматирования, улучшения быстродействия и многое другое

Время на прочтение3 мин
Количество просмотров8.1K
Привет, Хабр!

Совсем недавно вышел AppCode 2016.3, и в этом посте мы расскажем о самых интересных изменениях в нем.


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии16

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Custom Video Recorder для iOS приложений

Время на прочтение12 мин
Количество просмотров6.6K
Приложение Камера для iPhone / iPad очень удобно в использовании. Пользователь легко может переключаться из режима фотографирования на видеосъемку. В режиме видеосъемки показывается время съемки и всего одна кнопка (Старт / Стоп). К сожалению, при использовании стандартного UIImagePickerController’а нет возможности контролировать количество кадров в секунду и некоторые другие параметры. Я покажу, как, используя AVFoundation framework, получить доступ к более тонким настройкам камеры, таким как, количество кадров в секунду, качество видео, длительность записи, размер видео файла. Пользователь сразу будет видеть на экране видео в том качестве, в котором оно будет сохранено.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии9

Новая зимняя стажировка для разработчиков в Redmadrobot

Время на прочтение3 мин
Количество просмотров11K


Привет, Хабр! Мы открываем набор на третью стажировку для разработчиков в Redmadrobot. Старт 19 января 2017 года, продолжительность программы 7-8 недель. Сбор заявок до 25 декабря.
Интересно? Подробности под катом.
Всего голосов 15: ↑14 и ↓1+13
Комментарии18

Программирование состояний в UIControl

Время на прочтение4 мин
Количество просмотров12K
Основная проблема, с которой сталкивается программист при реализации какого-то управляющего элемента — выстраивание правильной логики работы этого элемента.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Анонс CocoaHeads Meetup 2 декабря

Время на прочтение2 мин
Количество просмотров1.6K


В первую пятницу декабря состоится регулярная встреча iOS-разработчиков CocoaHeads Moscow. В этот раз мы соберемся в офисе компании Rambler&Co. В программе встречи три доклада на очень разные темы — как про общие архитектурные подходы к iOS приложениям, так и про процессы разработки и получения фидбэка от пользователей при запуске нового функционала.

Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии0

Симметрическая разность возможностей Swift и Objective-C

Время на прочтение24 мин
Количество просмотров23K

image


В этой статье я расскажу о различии возможностей, которые предоставляют iOS-разработчикам языки Swift и Objective-C. Безусловно, разработчики, которые интересовались новым языком от Apple, уже видели немало подобных статей, поэтому я решил акцентировать внимание на тех отличиях, которые действительно влияют на процесс разработки и на архитектуру приложения. То есть, те отличия, которые следует знать, чтобы использовать язык максимально эффективно. Я попытался составить наиболее полный список, удовлетворяющий этим критериям.


Кроме того, рассказывая о новых возможностях, которые Swift привнёс в разработку, я постарался не забыть упомянуть то, что он потерял по сравнению с Objective-C.


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


На момент написания статьи текущая версия Swift — 3.0.1.


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии12

Создание динамических анимаций в WatchKit

Время на прочтение2 мин
Количество просмотров2.7K
Обнаружил эту статью в черновиках. Если её не опубликовать сейчас, то уже никогда – она безвозвратно устареет и место ей только на помойке.

Не так давно компания Apple представила WatchKit Framework для разработки приложений под свои фирменные часы Apple Watch. На данный момент iOS 8.3 SDK очень ограничен – весь код выполняется на iPhone/iPad, а на часах находится только интерфейс и картинки. Таким образом, при любом взаимодействии с элементами интерфейса – код выполняется на iOS-устройстве, а сигнал проходит от часов до устройства по Bluetooth и обратно. Создание анимаций из заранее нарезанных кадров – задача довольно примитивная и уже разжевана во многих блогах. Под катом речь о создании динамической анимации, кадры который подготавливаются на CoreGraphics.


Я люблю динамические анимации
Всего голосов 14: ↑12 и ↓2+10
Комментарии0

Что не так с отображением символов валют в iOS

Время на прочтение2 мин
Количество просмотров18K
В июне 2016 года в App Store появилось разработанное нами приложение ИЛЬ ДЕ БОТЭ. Клиент попросил нас использовать шрифт Carisma. К системным шрифтам платформы iOS он не относится, что можно понять после попытки найти его здесь. Работая над приложением, я отметил, что символы валют, попадающие в диапазон от U+20B6 (символ турского ливра) до U+20BE (символ грузинского лари) и набранные шрифтом, не входящим в число системных, снижают производительность приложения. Символ рубля — как раз из указанного диапазона.

Найдите отличия:



Капитан выходит на связь
Экран справа лагает. Это заметно по показателю загруженности CPU.

Давайте-ка это обсудим.
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии10