Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Ios

«Шесть сезонов „Игры престолов“ за две недели на работе...»

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

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

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

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

Программирование — то, что доктор прописал

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

Уговорил и меня попробовать. Правда, я решил оценить возможности Java — прошёл сначала короткое онлайн-обучение по этому языку. После этого решил проработать вопрос серьёзнее: поискал в сети курсы и нашёл GeekBrains. Помню, понравилось то, что они связаны с Mail.Ru Group, поэтому остановился на этом варианте.

Выбрал iOS-разработку. Я большой поклонник продукции Apple и думаю, что её мобильные устройства будут востребованы ещё долго. А значит, и на специалистов будет спрос. Apple — компания, которая двигает технологии вперёд. Конечно, уже не так, как при Джобсе, но всё же она находится на переднем крае hi-tech.

Этап обучения 

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

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

Ещё один нюанс: уже заканчивая карьеру менеджера, я делал приложение для работодателя. Это был калькулятор стоимости литра топлива на базе в Бишкеке с учётом всех издержек при покупке в разных местах. Например, компании предлагают купить 92-й бензин на границе Киргизии и России по 400 долларов за тонну. Мы эту сумму забиваем в калькулятор и видим результат: литр этого бензина на нашей базе будет стоить 30 сом (местная валюта). В то же время мы знаем, что прямо сейчас можем купить в Бишкеке рядом с базой такое же топливо, а его финальная стоимость будет 25 сом за литр. Так можно быстро сравнивать варианты и принимать решения.

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

Так я применил свой опыт на практике — и это пригодилось впоследствии.

Трудоустройство

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

Несколько раз мне отказали — ведь в резюме я честно писал, что опыта работы нет. Но после очередного собеседования HR посоветовала его всё же указать — она узнала, что на предыдущем рабочем месте я разрабатывал приложение.

Это сработало: на собеседования меня стали приглашать гораздо чаще. В итоге я устроился в «Альфа-Банк» разработчиком. Возможно, помогло и то, что на курсах мы изучали вопросы, которые обычно задают на собеседованиях, и мои ответы понравились интервьюеру.

Что касается работы, то сначала меня оценили как «начинающего middle», и эти было очень неожиданно. Со временем я дорос до старшего разработчика.

Доходы, дорога на работу и другие нюансы

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

На дорогу до офиса трачу примерно столько же времени, но зато появилось много других плюсов. Это корпоративные «плюшки» и бонусы, ДМС, фитнес. Удобный и просторный офис, а также возможность работать удалённо — этой зимой попробую из Испании. Компания оплачивает поездки на конференции. Ещё «Альфа-Банк» сейчас развивает мерч-направление, так что как сотрудник я всегда могу купить свитшот с хорошей скидкой :)

Свободного времени стало гораздо меньше — я реально занят работой, причём такой, которая приносит удовольствие мне и пользу компании. Это имеет для меня большое значение.

Есть у меня и pet-проекты, которыми только начинаю заниматься. Возможно, вскоре расскажу, что они собой представляют, но пока это секрет.

Планы на будущее

Мне хочется двигаться дальше, совершенствоваться как разработчику. Для этого планирую изучить Ruby и Go. Причём не только для себя, но и в интересах компании — есть несколько проектов, где нужны эти технологии. Учиться на работе сейчас уже нет времени, но не теряю надежды обязательно освоить всё, что запланировал.

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

Советы начинающим

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

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

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

Просто делать свою работу, если она нравится, и верить в успех. В большинстве случаев именно так всё и получается.

Хотите узнать больше о выпускниках факультета iOS-разработки и других факультетов программирования GeekBrains? Вот их истории:

Пройти обучение

20 дек 19, 11:46
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Сходил на два-три собеседования и нашёл работу»

Университет готовил Евгения Кириллова к градообразующему химзаводу Нижнекамска, но наш герой спустя год в Geek University стал iOS-разработчиком на удалёнке. Теперь он делится советами и вдохновением!

Я живу в Нижнекамске. У меня два высших образования: по специальностям «автоматизация» и «экономика и управление». Получал их практически одновременно — через год после первого получил второе. Когда поступал, то думал, что выучусь на разработчика, но вышло совсем не так. Программирования было мало, нас учили на сотрудников местного завода — градообразующего предприятия в химической отрасли.

Вид на Нижнекамск со стороны Елабуги

На заводе я проработал немного. Мне не понравилось, и я устроился в строительную фирму. Там я, конечно, сидел за компьютером, но к программированию моя деятельность никак не относилась — я вёл документацию. Заниматься этим всю жизнь не хотел, а вот разработчиком мечтал стать, ещё когда школу заканчивал. 

Почему iOS

Незадолго до поступления на факультет iOS-разработки я поменял телефон. У меня была Nokia Lumia на Windows, а потом я купил iPhone — мне в нём всё так понравилось, что появилась симпатия к Apple. Затем на работе вместо компьютера с Windows поставили iMac, и тут опять всё оказалось очень здорово. Экосистема Apple впечатлила! Потом я открыл для себя язык программирования Swift. Так постепенно из разных предпосылок сформировалось желание стать iOS-разработчиком. И как раз GeekBrains подвернулся очень удачно. Я долго думал и всё-таки решился, когда появилась не просто профессия, а факультет.

О трудностях и мотивации

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

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

Конечно, один из аспектов, который меня привлекал в будущей работе — значительное увеличение зарплаты. Ну и засиживался я до утра потому, что мне интересно программирование. Оно настолько увлекало, что я не замечал, как летит время. Я даже не зевал и не пил кофе, чтобы не воткнуться головой в клавиатуру. Я просто сидел и решал поставленные задачи!

Трудоустройство и ценность GeekBrains

Уже после первой четверти нам рекомендовали начинать ходить по собеседованиям, чтобы найти хотя бы низкооплачиваемую работу или стажировку. Но я себе этого позволить не мог, так как у меня семья и дети. Начал ходить на собеседования во время третьей четверти. Написал резюме, отправил его и принялся за поиски работы. Было приятно, что один из моих любимых преподавателей Евгений Елчев, который на момент обучения был деканом факультета, позволил указать себя в резюме в разделе «Кто может вас порекомендовать». Мы, кстати, до сих пор иногда с ним общаемся.

Начал я ходить по собеседованиям. Для меня это всегда эмоциональный момент. По итогам либо воодушевление чувствуется, либо сильная подавленность. И тут важно не падать духом, искать поддержки, хладнокровно во всём разбираться. Я после неудачных собеседований писал в нашу группу в Telegram о том, какие вопросы задавали. Сообщество всегда помогало и заряжало мотивацией!

Работу нашёл быстро, сходил всего на два или три собеседования. Третья четверть у нас заканчивалась с 2018-м календарным годом, как раз тогда я договорился с работодателем. И в первый день 2019 года подписал трудовой договор.

Устроился тогда в компанию «Технократия», которая занимается аутсорсом в сфере IT. Съездил как-то раз к ним на митап в Казань. Меня, кстати, на мероприятие позвал одногруппник, который там тогда жил. А потом, когда я уже решил, что пора трудоустраиваться, то к ним и обратился. Они узнали, что я был на их митапе, это их обрадовало, и в итоге меня взяли.

Зимний отдых «технократов», тут есть и я :)

В «Технократии» я был чуть ли не единственным удалённым сотрудником, что оказалось не совсем удобно. А переезжать в Казань я не хотел. Поэтому через четыре месяца я без особых усилий перешёл в компанию Work-zilla, где все на удалёнке — сотрудники распределены и по России, и по другим странам. До сих пор работаю здесь!

Честно скажу, что обучение на факультете iOS не то что помогло в трудоустройстве, оно стало определяющим фактором. В нижнекамском институте мы изучали технологии и языки, которые уже не используются. Разве что совсем немного C++. Знания оттуда мне если и помогли, то только на время подготовительных курсов, которые длились месяц. А всё остальное — это GeekBrains и то, что я сам где-то изучал. Но GB — 90%, если не больше.

Из программы пригодилось вообще всё. Но наиболее полезным и интересным мне показалось содержание третьей четверти, в которой был курс «Профессиональное программирование». Там рассматривались вопросы, которые в первую очередь задают на собеседованиях. Если раньше нас учили просто написать программу как-нибудь, то здесь — делать это правильно, с применением лучших практик, чтобы код хорошо поддерживался. Очень часто на собеседованиях спрашивают про SOLID, и как раз там мы проходили эти принципы. Действительно всё пригодилось! Был даже курс, который сначала казался скучным, а потом в работе я возвращался к нашим методичкам и применял те знания. 

И насчёт зарплаты: GeekBrains, когда указывал её размер, не обманул! :)

Как выглядит мой рабочий день

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

Мой кабинет, обустроенный на балконе

Начало и конец рабочего дня не регламентированы, есть лишь рекомендация, чтоб пересечения времени с другими сотрудниками было как можно больше. Я начинаю свой день в 8 или даже немного пораньше. Отвожу детей в садик, прихожу домой и начинаю работать. Заканчиваю в 17, так как опять нужно идти в садик :)

У меня рабочий день получается 8 часов, может, чуть-чуть больше. В офисе, насколько я представляю, люди работают меньше, чем на удалёнке. Так как можно поболтать с коллегами или опоздать на работу из-за проблем с общественным транспортом. А у меня такого нет — я просто пошёл в свою комнату и работаю. 

Чтобы мы не только работали, но и общались, друг друга знали, у нас организованы клубы. Например, есть книжный клуб: мы выбираем книгу, читаем её, а потом собираемся в Skype и обсуждаем. Время таких клубов тоже считается рабочим.

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

Пара советов абитуриентам и студентам

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

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

На GeekBrains удобно, что можно не «присутствовать» на занятии, а посмотреть запись. Но это значит у самого себя украсть время на выполнение практического задания. Лучше смотрите всё в прямом эфире, чтобы иметь возможность задать вопрос преподавателю на месте. Помню, было здорово, когда в четвёртой четверти на занятии могло присутствовать всего два-три студента и мы прямо голосом общались. 

Не ограничивайтесь учёбой в GeekBrains — пользуйтесь другими ресурсами. Но выбирайте их тщательно. Например, я раньше следил за множеством источников, но потом обнаружил, что они часто публикуют статьи людей, которые перефразируют сказанное Apple. Компания каждый год проводит конференцию для разработчиков WWDC. Там показывают и рассказывают, что есть нового в их среде разработки, технологиях. Если есть хотя бы среднее знание английского, то очень рекомендую следить. Можно смотреть и читать на их сайте. Можно в приложении для iOS или Apple TV. 

Можно почитать перевод учебника Apple. Но из-за частых обновлений я всё же рекомендую его в оригинале. Советую ещё интересный блог про язык Swift — Swift by Sundell. И, конечно, тематические разделы Хабра, Medium. Рекомендую также подкаст «Подлодка» — еженедельное аудиошоу про IT и всё, что с ним связано.

А вот несколько полезных Telegram-каналов, на которые я успел подписаться:

Чуть не забыл совет для абитуриентов — поступайте под Новый год, я так большую скидку получил.

О важности непрерывного обучения и немного о планах

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

Я сейчас поднимаю фундаментальные знания, которые пригодятся в любой области профессии. Насколько мне известно, когда программист устраивается, например, в Google, его там не считают разработчиком сайтов или специалистом по какому-то языку. Это просто инженеры, которые могут делать по большому счёту всё. Не важно, на каком языке ты пишешь, — если у тебя есть фундаментальные знания, то ты новый язык изучишь за неделю и будешь делать на нём то, что требуется.

Если заглядывать дальше, лет на 5–10, то я не хочу ограничиваться iOS. Сейчас на острие прогресса машинное обучение, было бы здорово в эту область заглянуть — и, возможно, стать в ней специалистом. Сейчас эти профессионалы как раз самые востребованные и высокооплачиваемые, там интересные вещи происходят. И технологии машинного обучения применяются всё больше: хоть в самоуправляемых машинах, хоть в поисковой выдаче. Может, даже когда-нибудь получится сделать робота, который будет ходить по Марсу и сам всё делать, а не ждать команд с Земли.

В таком, глобальном смысле iOS-разработка немного ограничена. Да, я пишу под телефоны, это здорово: их миллионы, можно написать очень много разных программ… Но в машинном обучении потенциал гораздо шире.

Пока предпочтений в этом направлении нет — просто хочется делать то, что принесёт как можно большую пользу людям на нашей планете. Что-то масштабное — как SpaceX, например. Поэтому и подтягиваю фундаментальные знания. Читаю книгу «Совершенный код» — она очень большая, её ещё называют библией программиста. Хочу прочитать «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» от «Банды четырёх», а также «Алгоритмы. Построение и анализ», авторы — Томас Х. Кормен, Чарльз И. Лейзерсон. Пожалуй, это мой заключительный совет — на случай, если кому-нибудь тоже хочется стать универсальным солдатом в программировании.

Советуем прислушаться к совету Евгения о поступлении под Новый Год — с 1 декабре вас ждут ещё большие скидки на все наши учебные программы!

Пройти обучение

29 ноя 19, 12:45
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Кто такой iOS-разработчик

Со стороны iOS разработка может казаться закрытым клубом. Для работы обязательно нужен Mac, Apple пристально контролирует экосистему. Изнутри тоже иногда слышны противоречия — кто-то говорит, что язык Objective-C старый и неповоротливый, а кто-то, что новый язык Swift слишком сырой. 

Тем не менее, разработчики идут в эту сферу и попав туда, остаются довольны. 

В этот раз о своем опыте нам рассказали Марат Нургалиев и Борис Павлов — как они учились профессии IOS-разработчика, как проходили первые собеседования, почему получали отказы. А экспертом выступил Андрей Антропов — декан факультета iOS-разработки в GeekBrains.

В 2016 году Марат Нургалиев из Астраханской области пришел устраиваться на работу мобильным разработчиком в местную телекомпанию. Это было его первое собеседование. Он только что вернулся из армии, без практики и опыта, позабыв даже теорию, с которой и так были проблемы. Единственным опытом в мобильной разработке у Марата была дипломная работа по анализу потоков утечек информации через Android-приложения. На собеседовании его спрашивали про учебу и опыт, про ООП и прочую теорию, но пробелы в знаниях Марату скрыть не удалось. 

Тем не менее, ему не отказали, а дали практическое задание — за две недели реализовать отображение списка новостей с помощью API. И под iOS, и под Android. «Если на Android у меня был какой-то опыт, то для создания iOS версии не было даже инструмента. Среда разработки ios приложений есть только на Mac. Но через две недели я вернулся, показал, что мог на Android. С iOS пришлось выкручиваться на ходу. В итоге меня взяли. Тогда я жил в Астрахани. Меня устраивала любая работа в ИТ с зарплатой выше двадцати».

Кто такие — iOS-разработчики

IOS-developers - это мобильные разработчики делают приложения для любых портативных устройств. Смартфоны, планшеты, умные часы и все остальные платформы, которые поддерживают Android или iOS. Фундаментальные основы мобильной разработки не отличается от обычной, но из-за специфических инструментов ее выделили в отдельное направление. Здесь используются свои инструменты, языки программирования и фреймворки. 

«Для работы с iOS нужен макбук, потому что только на нем есть необходимая среда разработки Xcode. Она бесплатна и распространяется через магазин приложений AppStore. Для установки надо иметь своей Apple ID и больше ничего. В Xcode можно разработать приложения для чего угодно — телефона, планшета, часов. Встроенный симулятор и редактор есть для всего», — говорит Андрей Антропов, декан факультета iOS разработки в GeekBrains.

«Но среду разработки можно поставить и на Windows, если использовать „Хакинтош”. Это рабочий, но окольный вариант — никто из серьезных разработчиков подобным не занимается. Начинающие покупают старенький Макбук. А опытные обычно могут себе позволить последнюю модель».

Языки — Swift или Objective-C

Почти вся iOS-разработка ведется при помощи языка программирования Swift. Он появился пять лет назад и сейчас постепенно вытесняет старый язык Objective-C, который Apple использовала во всех своих приложениях больше 30 лет

«На Objective-C накоплена огромная база кода, поэтому до сих пор требуются разработчики на оба языка, в зависимости от компании, от ее задач и приложений. Приложения, написанные много лет назад, основаны на Objective-C. А все новые проекты по умолчанию разрабатываются на Swift. Сейчас Apple очень много делает для того, чтобы вести одновременную разработку под телефон, планшет, часы и Макбук было максимально удобно. Один и тот же код может быть скомпилирован и запущен везде. Раньше этого не было. Под iOS разрабатывали на Swift, под MacOS использовали Objective-C».

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

«Objective-C достаточно старый язык — ровесник языка С++. Во времена, когда его разрабатывали, требования к языкам были совсем другими. Когда появился Swift, в нем было много багов, функциональность была ограниченной, синтаксис был шероховатым. А на Objective-C у людей была набита рука. Он много лет совершенствовался, все ошибки там были исправлены. Но теперь, я думаю, Swift не уступает Objective-C. Хотя даже Apple в своих проектах до сих пор использует оба. Языки во многом взаимозаменяемые и взаимно дополняемые. Структуры и объекты одного языка можно превратить в объекты и структуры другого языка. Хорошо бы знать оба варианта, но для новичков Objective-C часто кажется пугающим и непонятным».

Обучение IOS-разработке

«На моей первой работе меня обучал начальник, помогал в реализации и настройке проекта», — рассказывает Марат, —  «Но работать по Android и по iOS одновременно трудно. Нужно время для перестройки, переключения с проекта на проект, с языка на язык. В итоге я решил, что нужно выбрать одно направление и изучать его. Меня подкупили интерфейс Xcode и простой синтаксис Swift».

Марат поступил на факультет iOS-разработки в GeekBrains. Первое время было очень легко, потому что многие вещи он знал по опыту работы. Годовой курс разбит на четыре четверти. По словам Андрея, в первой дается только самая база: «Основа языка Swift, знание базовых фреймворков, сетевое взаимодействие, хранение данных, жизненный цикл приложения, контроллера, базовые архитектуры, основные библиотеки, которые все используют, многопоточность и параллелизм в приложениях».

Во второй четверти добавляется Objective-C. Проводится курс по архитектуре, базовым паттернам программирования. В третьей четверти учат правильному стилю написания кода. Рассказывается, что такое фабрика, как правильно писать тесты, формировать проекты, что такое Git-Flow, Continuous Integration через Fast Lane. Четвертая и завершающая четверть посвящена командной работе, практическим заданиям и стажировкам.

«Первая четверть прошла легко», — говорит Марат, — «но потом началось изучение программирования на Objective-C, изучение паттернов проектирования, принципов Solid, Git-Flow, архитектуры проекта, Unit и UI тестирования приложений, настройка кастомной анимации — и тогда мне стало интересно учиться». 

«У меня в GeekBrains все началось не супер гладко», — рассказывает Борис Павлов, и его путь к iOS-разработке в целом был не самым прямым. Парня воспитывала бабушка. Она была архитектором, математиком и дизайнером и привила Борису любовь к проектированию, научила чертить от руки и рисовать. Его дядя был сисадмином и заинтересовал племянника компьютерами. 

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

Он начал изучать C++ с преподавателем в Иркутском Институте Солнечно-Земной Физики. Затем заинтересовался геймдевом и попробовал перейти на C#. И, наконец, как и Марата, его подкупил язык Swift. 

«Я решил пройти бесплатный вводный курс в GeekBrains. Если честно, он был очень скучным, вялым и непонятным», — вспоминает Борис, — «преподаватель рассказывал об особенностях языка, но метался из одной темы в другую не раскрывая сути. Когда курс закончился, я так ничего и не понял».

Поэтому после вводного курса Борис поступил не на годовое обучение, а на короткий трехмесячный курс, где преподают самые основы профессии. «Там мне попались очень хорошие преподаватели, и объясняли все достаточно понятно».

«Нас часто критикуют, якобы у нас не совсем актуальные методички, есть неточности. Но курсы постоянно обновляются, а преподаватели всегда рассказывают о новшествах. Из групп, которые я веду, очень многие трудоустраиваются уже после первой четверти. Конечно, обычно это люди с опытом программирования», — говорит Андрей, —  «С другой стороны, все знания невозможно донести за один курс. Сетевое клиентское взаимодействие в жизни не уместишь в десять лекций по два часа. И если ты ходишь только на курсы IOS-разработки и больше ничего дополнительно не делаешь, то знаний не хватит. Если же весь год заниматься каждый день, то при таком темпе только ленивый не устроится. Потому что спрос в профессии очень большой».

Вакансии сюда

Вы можете посмотреть самые свежие вакансии для iOS-разработчиков и подписаться на новые.

Работа

Но ни у Марата, ни у Бориса трудоустройство не прошло так просто. 

«Некоторые крупные фирмы давно разработали iOS приложения на Objective-C, и  продолжают поддерживать старую кодовую базу. К сожалению, у меня нет весомого аргумента, чтобы заставить их использовать исключительно Swift. Особенно тех, кто пользуется правилом „не трогай то, что работает“», — говорит Марат, — «Направлению Objective-C в Geekbrains уделяется мало внимания. Оно несет скорее ознакомительный характер. Но каждая компания, в которую я собеседовался, спрашивала про Objective-C. А так как учеба ориентирована на Swift, как и моя прошлая работа, то на собеседованиях я получал отказы».

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

Но все оказалось не так радужно. Даже от джуниора IOS-разработки простят того, чего он знать не может. Я пока не нашел работу. Работаю за „спасибо“, набираюсь опыта. Понимаю, что это не то, чего я хотел, но мне интересно, и это движет мной. Я хочу получать знания».

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

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

Зарплаты

Зарплата iOS разработчика, как и любая другая зависит от вопроса «Москва или Россия». Но из-за специфики индустрии — много удаленной работы, возможности для релокации и работа не на региональном рынке — цифры все чаще приближаются друг к другу.

«Джуниор совсем низко уровня часто работает бесплатно или за символические деньги — 20–30 тысяч рублей. Если же джуниор целенаправленно взят на свою позицию, то получит от 50 до 80 тысяч. Мидлы получают от 100 до 150, и иногда даже до 200. Синьоры в IOS-разработке меньше 200 не получают. Я думаю, их зарплата в районе 200–300. А у тимлидов, соответственно, за 300».

Зарплаты сюда

По данным калькулятора зарплат «Моего круга» средняя зарплата iOS-разработчика составляет немногим меньше 140 000 рублей.

Собеседования

«Первое собеседование прошло по скайпу. На мое удивление это был Google», вспоминает Борис, — «тогда я только переехал в Питер и начал искать работу. Мне пришел отклик на вакансию iOS разработчика. Не джуниор, не мидл, не синьор — просто разработчик. Я обрадовался, начал переписываться с менеджером. Меня попросили выполнить техническое задание: надо было написать приложение для шуток про Чака Норриса. Я его написал. Мне сказали, что все классно и назначили онлайн собеседование.

Мы созвонились. Со мной общалась приятная девушка. Но никаких вопросов про знание языка не задавали — только разные логические задачки, например, „Время 15:15 сколько градусов между часовой и минутной стрелкой?“ или „Столб 10 метров, улитка днем ползет 3 метра вверх, ночью спускается на 1 метр. Через сколько дней она доползет до верха?“, и еще парочка подобных. 

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

Когда начались вопросы про Swift, моих знаний хватило только на паттерны программирования и основы ООП. Мы распрощались, через неделю мне перезвонили и сказали, что я не подхожу. Собственно, я из этого извлек огромный опыт: нужны знания, их нужно много — и теория, и практика».

Андрей рассказывает, что «первая вещь, которую у всех спрашивают на собеседовании — это жизненный цикл контроллера. Очень любят спрашивать какой-нибудь простенький паттерн программирования. Обязательно спросят про опыт использования популярных библиотек. Точно будет вопрос про отличия в Swift Value Types от Reference Types, про Automatic Reference Counting и управление памятью. Могут спросить, как реализовывали хранение данных в приложениях, и реализовывали ли сетевые запросы. Спросят про основы REST и JSON. Специфические вещи и тонкости у джуниора не будут спрашивать. По крайней мере я не спрашиваю».

У Бориса же был иной опыт: «Даже когда я просился на стажировки, выполнял технические задания и говорил, что мне не важна зарплата, лишь бы ее хватало на съем квартиры — мне все равно отказывали. Я читал статьи, пытался понять, что нужно рекрутеру от новичка. Но заваливали в основном на теории. Почему-то задавали вопросы из высшей лиги, которые не касаются новичков». 

Марату повезло больше. Сейчас он работает в транспортной компании и один отвечает за iOS направление, продолжая учебу на факультете. «Поскольку за iOS отвечаю я один, мой труд оценивается только умением реализовать поставленные передо мной задачи [а не знанием теории]».

Сообщество

Андрей живет в Нижнем Новгороде и говорит, что даже там сформировалось отличное сообщество. Когда-то давно он был бэкенд-разработчиком на Python, но друзья перетащили его в мобильную разработку — и теперь он сам агитирует всех ей заниматься. 

«Мировое комьюнити обычно общается через твиттер. Люди ведут свои блоги, записывают ролики на Youtube, зовут друг друга на подкасты. Однажды у меня появился вопрос по презентации, где выступал тимлид HQTrivia. Это американская викторина, в которую играет одновременно несколько миллионов человек. Я ему написал в твиттере, он мне ответил, мы пообщались, я поблагодарил. Комьюнити чрезвычайно дружелюбные, и это здорово».

Литература

https://docs.google.com/document/d/1-cMseCx1vBwVA8xv4uccpE_vkqvhPG_1Wt9gLiLWAGQ/edit#

Пройти обучение

7 авг 19, 16:25
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

12 вопросов об iOS-разработке: интервью с деканом

На вопросы отвечает декан факультета iOS-разработки Андрей Антропов.

— Андрей, приветствую! Сколько вы уже в iOS-разработке?

— Здравствуйте. В iOS-разработке я три года. Перешел из бэкенд-сферы и до сих пор не жалею: получаю сплошное удовольствие от связки Swift-iOS. Успел поработать и фрилансером, и в команде. Сейчас разрабатываю приложения в замечательной студии Morizo-Digital.

— Чем вас привлекла сфера iOS? И какие она предлагает пути развития? Особенно интересны самые перспективные, на ваш взгляд, направления iOS-разработки.

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

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

  • Разработка приложений для умных часов (watchOS), которые все плотнее входят в нашу жизнь.
  • Серверная Swift-разработка. Еще пару лет назад она была причудой энтузиастов, а сейчас вовлекает все больше людей. Я говорю не только о фреймворках Vapor, Kitura, но и о системной библиотеке SwiftNIO от Apple, которая позволяет использовать вышеперечисленные библиотеки в серверных решениях. Появление SwiftNIO показывает, что Apple заинтересована развивать серверное Linux-направление.
  • MacOS-разработка. Она все ближе и доступнее с выходом Marzipan — фреймворка, который позволит создавать macOS-приложения при помощи основной iOS-библиотеки UIKit. Знания, полученные при изучении iOS, становятся еще универсальнее.
  • Всеми любимая разработка игр. Их можно создавать не только при помощи Unity (привет факультету разработки игр), но и посредством встроенных системных инструментов SpriteKit и SceneKit.
  • Многое другое. Что говорить, если уже сейчас можно запускать Swift на Raspberry Pi и создавать умные устройства, управляемые с телефона.

Конкретно в iOS-разработке наибольший ажиотаж за последний год — вокруг приложений, использующих машинное обучение (ML) и дополненную реальность (AR).

Для обеих этих сфер Apple создала очень удобные системные библиотеки MLKit и ARKit соответственно. Они позволяют интегрировать последние достижения ML и AR при помощи нескольких строк кода.

В дальнейшем предложение будет диктовать спрос: ждем заявок от интернет-магазинов на AR-примерочные или, например, анализ и обработку отзывов средствами Machine Learning.

— Что интересного сейчас происходит с самим языком Swift — как он развивается и меняется в последние несколько лет?

— Swift очень вырос, окреп за последние годы и де-факто стал основным языком iOS-разработки. Думаю, не сильно ошибусь, если скажу, что 95 % новых iOS-приложений создаются на Swift. Кроме того, как я уже сказал, продолжается экспансия языка Swift на платформу Linux.

Реализованный в 2014 году Swift 4.2 LSP (Language Server Protocol) позволяет удобно работать с языком не только в заточенной под macOS среде Xcode, но и в других IDE, которые можно запускать и на Linux. Например, в Visual Studio Code. Количество системных приложений, которые Apple переписали с Objective-C на Swift, в iOS версий 10, 11 и 12 растет экспоненциально.

— Чтобы начать писать для iOS, нужно иметь Apple-устройство под рукой. Каков минимальный набор начинающего разработчика? Я слышала, надо еще платить какие-то отчисления...

— К сожалению, входной барьер в iOS-разработку высок, но это связано со стоимостью оборудования. Для начала вам потребуется MacBook, желательно не очень древней модели. На него вы установите среду разработки Xcode, после чего сможете начать писать первую программу. Больше на старте ничего платить не придется: достаточно бесплатного сертификата, привязанного к вашему Apple ID.

А вот чтобы загрузить свое приложение в магазин, понадобится оплатить distribution-лицензию. Она стоит 99 $ в год, но обычно эти деньги вносит не разработчик, а заказчик приложения.

Тестировать созданное приложение вы сможете хоть в программном симуляторе, хоть на подключенном к макбуку устройстве — платить за это не надо. Но и здесь есть нюанс: не вся функциональность доступна по бесплатной лицензии разработчика. Например, для подключения iCloud нужна платная годовая подписка.

— iOS-разработка — это не только Swift, но и Objective-C. Для каких задач предпочтительнее каждый из этих языков? И зачем студенты факультета еще учат основы C?

— Надо понимать, что Objective-C долгие годы был единственным языком разработки для macOS и iOS. За это время программисты написали на нем множество библиотек и модулей, которые до сих пор повсеместно используются, и заменить их в один миг нельзя. Да и, скорее всего, не нужно. Так что Swift и Obj-C — это спайка двух родственных технологий.

Да, сейчас Swift вышел на уровень, когда вы можете писать приложения, не зная Obj-C. О существовании последнего вы можете даже не подозревать. Но для полного понимания системных процессов знание Obj-C очень полезно. А ведь мы хотим, чтобы подход студентов к разработке был глубоким.

Кроме того, спрос на программистов Obj-C до сих пор высок. Особенно в компаниях с богатой историей разработки и массой так называемого legacy-кода, который нужно поддерживать и оптимизировать.

Если мы копнем еще глубже, то увидим, что некоторые iOS-проекты требуют библиотек на C/C++. В отдельных случаях это позволяет достичь большого прироста производительности. Чтобы не ходить далеко за примером: на C/C++ реализована популярная библиотека Realm для хранения данных в мобильных приложениях.

Поэтому мы считаем, что знание основ языка С (например, указателей и memory layout) сегодня пригодится любому разработчику.

— Главный вопрос, который я задаю всем деканам: какие проекты делают ваши студенты?

— Приложения для работы с VK, для интернет-магазина и системы поиска билетов. Полученного в итоге опыта оказывается достаточно для трудоустройства. Многие наши выпускники работают в крупных компаниях, таких как Сбербанк, «Мамба», «Везёт».

— Что можно рассказать о факультативах от партнеров?

— Факультативы — это видеоуроки и вебинары от экспертов, которые обучают студентов продвинутым технологиям. Например, в прошлом году мы записали факультатив по Core Data от «Тинькофф Банка». Сейчас записываем факультатив по архитектурам приложений со старшим разработчиком браузера Mail.ru Group. Также готовим факультатив «Реактивное программирование» от AGIMA.

— Вы начали писать для iOS, уже имея опыт в Python. Был ли этот переход легким и насколько отличается процесс изучения этих языков?

— Кривая обучения у обоих языков довольно пологая — они очень дружелюбны к новичкам. Это здорово, ведь программирование должно привлекать, а не отталкивать. Безусловно, если вы знаете один из популярных языков, будь то С/C++, Java, Python, Go или Ruby — освоить Swift вам гораздо легче, чем тому, что учит его с нуля. Все перечисленные языки реализуют объектно-ориентированный подход, а значит у них много общего.

— В обращении к студентам вы упомянули о сходстве Swift и Python в плане интуитивной семантики. А было что-то, что поначалу удивило в Swift?

— Меня очень удивила легкость, с которой в Swift мы можем отойти от ООП-парадигмы в сторону функциональной.

Как и многим техническим специалистам, в университете нам преподавали Lisp и Prolog. С тех пор к функциональному программированию я относился очень настороженно и поначалу сторонился функционального подхода в Swift. Но со временем понял, что FP на Swift и Lisp — это земля и небо, а работа с математическими вычислениями и функциями может быть лаконичной, логичной и приятной.

— Ваша основная работа в Morizo-Digital тоже связана с iOS-разработкой?

— Да. В нашей студии я отвечаю за iOS-разработку. Но уточню: 14 лет мы создавали в основном сайты и бэк. Мобильными приложениями занимаемся совсем недавно. У меня сейчас на попечении два проекта, которые готовятся к релизу. До окончания разработки я не могу раскрывать подробности.

— По вашему опыту, какие темы в Swift для студентов — самые трудные?

— Swift богат возможностями: есть и дженерики, и протоколы, и ассоциативные типы, которые на самом деле являются дженериками для протоколов, а есть еще и расширения протоколов. В работе с протоколами и расширениями протоколов компилятор может применять статическую либо динамическую отправку методов — у них разная скорость выполнения. Наша же главная задача — оптимизировать код правильно. Когда мы пытаемся сочетать продвинутые техники, чтобы получить суперпродвинутую, — не грех и запутаться. Не знаю, как студенты, а я чуть не сбился, пока писал ответ на этот вопрос.

Если вам интересно, о чем я, можете посмотреть на opaque result types, которые появятся в Swift 5.1. Увидите, какие проблемы они решат.

— Какие материалы вы рекомендуете ученикам в дополнение к занятиям и методичкам?

— Я советую черпать знания изо всех проверенных источников. Условно их можно разделить на три типа:

1. Блоги, статьи, подкасты.

  • Обновленный блог Мэтта — автора популярнейших библиотек AFNetworking/Alamofire. Здесь можно почитать думы опытного программиста об iOS-делах насущных. Сложность материала: высокая.
  • Блог Джона Санделла — большого iOS-энтузиаста и участника всех возможных конференций. Он написал больше 100 статей о самых разных аспектах разработки и жизни программиста. Сложность материала: умеренная.
  • Шон Аллен — программист, который интересен искренностью и открытостью, с которой он рассказывает сообществу о своей работе. По понедельникам он делится с аудиторией новостями Swift.
  • Flawless App Stories — блог на Medium с подборкой статей по актуальным проблемам разработки от разных авторов. Замечателен тем, что позволяет взглянуть на процесс глазами сотен людей. Сложность материалов: очень разная.
  • Антуан Ван дер Ли — голландец, который в своем блоге сочетает множество тем: от разбора основ программирования до проблем выгорания и личности программиста.
  • iOS Dev Weekly — подборка самых актуальных новостей мира Swift. Уже несколько лет выходит каждую пятницу.
  • iOS Goodies — еще одна подборка новостей и обучающих статей, только выходит по вторникам.

2. Обучающие сайты.

  • RayWendelich — сайт №1 с обучающими материалами по iOS. Здесь много статей, видеоуроков и абсолютно замечательных книг, но в основном, конечно, платных.
  • ObjC.io — аналог предыдущего сайта, но с более глубокой академической подачей материала. Это для философов от Swift.
  • HackingWithSwift — сайт Ивана Урганта от Swift, Пола Хадсона (Paul Hudson) — мастера презентаций, Adobe After Effects и заготовленных шуток-каламбуров. В отличие от первых двух сайтов, здесь полно бесплатных статей и видео. Есть даже бесплатная обучающая программа.
  • Pointfree.co — мой любимый сайт, где двое дядек рассуждают о функциональном подходе в Swift. Их увлеченные лица как бы намекают, что они с удовольствием дискутировали бы и бесплатно. Но, к сожалению, для просмотра большинства видео нужна платная подписка.

3. Конференции разработчиков (записи выступлений, скорее всего, доступны на YouTube).

Русскоязычные:

Англоязычные:

И конечно, главное событие года для каждого iOS-программиста — конференция WWDC от Apple.

— Спасибо! Андрей, будем ждать вопросов от желающих изучать Swift и iOS-разработку. :)

Пройти обучение

4 июн 19, 13:04
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Лучшие приложения для macOS на 2019 год. Часть 2

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

Развлечения и соцсети

Spotify (бесплатно)

Музыкальный сервис Apple Music доступен не всем. К счастью, есть десктопное приложение Spotify — идеальная альтернатива для тех, кто ищет варианты за пределами экосистемы Apple. Приложение для Mac предоставляет доступ ко всему каталогу Spotify, как и его мобильный аналог: вы можете бесплатно искать и слушать треки и альбомы любых исполнителей.

Еще в Spotify можно создавать личные плей-листы или слушать персональные рекомендации с самой разной музыкой на ваш вкус.

HandBrake (бесплатно)

Копирование DVD в эпоху цифровой дистрибуции все еще имеет место. HandBrake быстро и легко справляется с конвертированием файлов и кодированием видео.  В приложении множество инструментов редактирования видео: склеивание, настройка частоты кадров, добавление субтитров. А еще это программа с открытым исходным кодом.

Parcel (бесплатно)

Немногие до сих пор покупают вещи только в офлайн-магазинах. Сервис Parcel предназначен для поклонников интернет-шопинга — покупателей в постоянном ожидании посылок. Приложение работает с более чем 250 сервисами доставки, включая FedEx, и помогает пользователям отслеживать посылки. Пуш-уведомления и интеграция с Spotlight — в виде бонуса.

Transmission (бесплатно)

Хороших торрент-клиентов не так много, но Transmission входит в число лучших. Приложение не занимает много места, превосходит другие по скорости загрузки и идеально сочетается с macOS. Это не самый мощный клиент, но лучший для операционной системы от Apple с учетом надежности и безопасной загрузки торрентов.

Некоторое время назад в сервисе обнаружили баг в безопасности, который устранили в последнем обновлении. Убедитесь, что загружаете самую свежую версию (2.94 или выше) с официального сайта.

VLC (бесплатно)

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

Slack (бесплатно)

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

Tweetbot 3 (749 ₽)

Приложение для опытных пользователей, которые отказываются от устаревшего официального Twitter для macOS в пользу более функционального. В последнем обновлении презентовали работу в нескольких окнах, отключение уведомлений, хештеги и ключевые слова. Tweetbot также поддерживает сторонние приложения вроде Paper и Bitly. Усовершенствованный интерфейс идеально сочетается с последними версиями macOS.

Безопасность и память

1Password (3 $)

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

Little Snitch 4 (47 $)

Блокировщик разрешений, который помогает контролировать все входящие и исходящие соединения. Если у вас есть программа, которую вы не хотите подключать к интернету, Little Snitch заблокирует ее. Можно настроить приложение на постоянную блокировку или запрет одной сессии в программе или на сайте. Программа отлично подходит для контрол-фриков, которые предпочитают всегда знать, что происходит с компьютером.

Больше о приложениях безопасности на macOS

Google Drive (бесплатно)

Скорее всего, вы знакомы с Google Drive. Но можете не знать, что работать с документами, таблицами и презентациями можно в офлайн-режиме, без подключения к интернету. Десктопное приложение Google предоставит быстрый доступ ко всем файлам и папкам. Как и в мобильном приложении, есть специальная папка, в которой можно синхронизировать до 15 Гб файлов — при условии, что вы не платили за дополнительное место на диске. А еще Google Drive может бэкапить все содержимое.

Dropbox (бесплатно)

Приложение для хранения данных, которое быстро и надежно синхронизирует файлы. Версия для macOS работает почти так же, как веб-версия и мобильное приложение: дает доступ к файлам и папкам, а фотографии, видео и документы можно загружать прямо с рабочего стола. В вашем распоряжении 2 ГБ бесплатного хранилища только за регистрацию в системе. Если пригласите друзей или подключитесь к Dropbox в соцсетях, сможете получить больше.

The Unarchiver (бесплатно)

Нативные приложения macOS не всегда умеют распознавать сжатые и заархивированные файлы. Но Unarchiver работает почти со всеми форматами, от RAR до более старых вроде StuffIt, ARC или Tar. Приложение даже не требует от вас его открывать — доступ к файлам можно получить в Finder одним кликом.

Пройти обучение

31 май 19, 17:57
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Лучшие приложения для macOS на 2019 год. Часть 1

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

Хотите извлечь максимум пользы из системы macOS? Мы позаботились об этом. В App Store есть сотни тысяч отличных приложений, совместимых с macOS, не говоря уже о тысячах других программ, разбросанных по интернету. Мы собрали список из 28 популярных приложений — вообще таких много, поэтому мы сократили перечень до тех, что будут полезны среднестатистическому пользователю.

Интерфейс

Alfred 3 (бесплатно)

Воспринимайте «Альфред» как поиск Spotlight с поддержкой Siri. Это программа для быстрого запуска приложений, но на самом деле она умеет намного больше. «Альфред» оптимизирует работу на компьютере: может найти нужный сайт по ключевому слову, быстро посчитать, подсказать значение и написание слова, открыть программу с помощью шортката и еще много чего. Программа дополняет Siri и стандартный поиск Spotlight, помогает автоматизировать задачи и выполнять больше функций.

Bartender 3 (15 баксов)

Это приложение для тех, кто использует слишком много приложений. Bartender — хитрый инструмент, который разработан с учетом особенностей системы. Он помогает систематизировать интерфейс: вы можете выбрать, какие приложения появятся в строке меню, и изменить их расположение как угодно. Еще есть поиск/навигация по приложениям в меню и возможность переместить/скрыть их в дополнительную вкладку. В последнюю версию добавили навигацию с помощью клавиатуры. А еще можно четыре недели пользоваться бесплатной пробной подпиской.

Amphetamine (бесплатно)

Программа не разрешает компьютеру переходить в спящий режим, запускать заставку или автоматически изменять яркость экрана. Amphetamine идеально подходит для просмотра видео, слайд-шоу, презентаций и любых действий, при которых вы долго не используете мышь, тачпад и клавиатуру. Важное уточнение — программа не работает со старыми версиями macOS (Yosemite и всеми, что до нее).

Dropzone 3 (10 баксов)

После установки Dropzone кажется неотъемлемой частью системы. Программа работает как инструмент быстрого доступа: мгновенно копирует и перемещает файлы, запускает приложения, шерит посты в Facebook и Flickr. А еще можно загружать файлы по FTP и Amazon S3 и сокращать ссылки с помощью Google URL Shortener. Все это скрывается за миниатюрной иконкой в строке меню.

Google Chrome (бесплатно)

Не нуждается в представлениях. К сожалению, Safari не может похвастаться таким же интуитивным управлением и удобством. Chrome — один из самых быстрых браузеров для десктопа, который на всех устройствах с одним аккаунтом поддерживает автоматическую синхронизацию закладок, открытых вкладок, истории поиска. Еще его плюсы — настраиваемость и мгновенный поиск.

Magnet (75 ₽)

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

Unclutter (1410 ₽)

Unclutter означает «навести порядок», в IT — «не допустить нагромождения деталей, элементов». Это базовое ПО, про которое многое можно понять из названия. Приложение открывается одним движением — быстрым свайпом от верхней части экрана, и служит удобным местом для хранения быстрых заметок, последних файлов и информации из буфера обмена.

После обновления появились темная тема (хотя в macOS Mojave и так есть дефолтный ночной режим) и перетаскивание окон на рабочем столе поверх других. Файлы и заметки автоматически синхронизируются между устройствами через Dropbox.

Продуктивность

Evernote (бесплатно)

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

Evernote предлагает бесплатную версию с базовыми функциями, до 60 МБ загрузки файлов в месяц и синхронизацию с двумя устройствами. Если вы привыкли брать от инструментов все, минимальной функциональности не хватит — премиум-версия стоит 35 $ в год.

Day One (бесплатно)

Вести личный дневник — старая традиция: спросите у Бенджамина Франклина, который десятилетиями писал автобиографию. Day one — это цифровой компаньон для тех, кто хочет запечатлеть моменты своей жизни. Кроме текста, можно добавлять в дневник фотографии, напоминания и теги, которые помогают организовать работу. Главный плюс приложения — защита паролем не дает возможности любопытным глазам подсмотреть ваши записи.

Приложение с базовыми функциями и ограниченным количеством записей бесплатное. Для доступа ко всем возможностям и обновлениям есть премиум-подписка за 35 $ в год.

Things 3 (3790 ₽)

Things 3 — отличное приложение для отслеживания задач и управления списком дел. После полного обновления дизайна оно стало еще полезнее: теперь можно легко синхронизировать списки со стандартным «Календарем» на macOS. Вы можете добавить описания к задачам, чек-листы, предстоящие задания или вечерние планы, автоматические напоминания и много чего еще. Если вы не против инвестировать в хорошее приложение для управления задачами, это того стоит. А если не уверены, можно протестировать бесплатную пробную версию.

Hazel 4 (32 $)

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

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

Fantastical 2 (3790 ₽)

Fantastical 2 — единственное приложение для работы с календарями, которое вам понадобится. Если вы не против потратить на него 50 долларов, конечно. Высокая цена, но приложение дает доступ к мощному набору инструментов. А полноэкранное окно календаря настолько же красивое, насколько практичное. Отличительная черта Fantastical 2 — удобные напоминания в календаре: просто напишите «Ужин с Алексеем в четверг в 19:30», проверяйте этот пункт в расписании и ждите напоминания.

Pixelmator (2290 ₽)

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

Pocket (бесплатно)

Как следует из названия, Pocket (карман) — это инструмент, который собирает для вас статьи, видео и сайты для просмотра в будущем. Он объединяет контент в простой в использовании интерфейс, который доступен офлайн.

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

PDF Expert (5590 ₽)

Работа с PDF-файлами — вынужденная рутина для тех, кто имеет дело с текстами, и PDF Expert немного облегчает эту задачу. Минималистичное программное обеспечение помогает заполнять формы и объединять PDF-файлы с помощью множества инструментов для редактирования, комментирования и подписи файлов на лету. Программа совместима с функциями непрерывной работы на устройствах Apple, поэтому вы можете приступить к задаче на ноутбуке, перейти на смартфон и не бояться потерять документ.

Reeder 3 (бесплатно)

Google Reader, может, и не работает, но хороший RSS-ридер — все еще полезная штука. Reeder 3 — один из лучших. Десктопное приложение с шикарным внешним видом, который идеально дополняет полупрозрачные панели macOS, поддерживает режим частного просмотра и сопрягается с большинством RSS-агрегаторов — Feedly, Feedbin, Fever. Темы, управление жестами и другие настройки также входят в стандартный набор функций.

Wunderlist (бесплатно)

Не позволяйте недавнему приобретению Wunderlist компанией Microsoft запутать вас — это все еще исключительный инструмент для macOS, даже без премиум-функций. Аккуратное приложение создает списки дел, в каждом из которых настраиваются сроки выполнения, напоминания и все необходимое, чтобы не отставать от графика и успеть к дедлайну. Программа также поддерживает списки для командной работы, синхронизирует содержимое между устройствами и сохраняет сайты и другой контент для будущего просмотра (что-то вроде Pocket).

Пройти обучение

23 апр 19, 15:56
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Приложения марта: IOS

Привет! Я Настя, автор и редактор статей в блоге GeekBrains. Каждый месяц я буду изучать сайты, тестировать приложения и рассказывать о самых интересных и полезных. В марте я выбрала пять iOS-приложений — для изучения истории, обработки фотографий, поиска обоев на смартфон, рисования, изучения английского.

History of everything

Приложение разработали в 2dimensions — компании, которая специализируется на создании анимации. В блоге основатель проекта Гвидо Россо рассказал, что идея приложения возникла как демонстрация продуктов компании — Flutter и Flare. Flutter — это инструмент для разработки приложений, а Flare — программа для создания векторной анимации. Нужно было сделать не просто демку, а реальное работающее приложение, и авторам это удалось. Концепция вдохновлена ​​видео Kurzgesagt «История всего».

History of everything — приложение для изучения истории. Его механизм построен на иллюстрированной временной шкале, которая перемещает пользователя от одного исторического события к другому. Поинты на ней объединены в группы: рождение Вселенной, жизнь на Земле, наша эра. Выбирайте одно из событий, изучайте его и сравнивайте с более ранней или поздней историей:

Для каждого события есть отдельная карточка с иллюстрациями и описанием на понятном языке — правда, на английском. Все рисунки в приложении анимированные: Большой взрыв, эволюция человека, знаменитая сцена с яблоком Ньютона и рождением закона гравитации. Всё это демонстрируют векторными иллюстрациями:

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

События и временные отрезки можно добавлять в избранное и составлять коллекцию:

Приложение доступно и в версии для Android.

Vellum Wallpapers

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

Vellum Wallpapers решает эти две проблемы. В приложении предлагаются обои для смартфона в отличном разрешении и на разные тематики — природа, абстракции, геометрия, паттерны, живопись, градиент, нейтральные фоны. Авторские права соблюдены: для каждой коллекции указан источник и есть небольшое описание:

Сразу же в приложении можно примерить фон на рабочий стол и экран блокировки:

Тут же можно поменять резкость, если обои красивые, но немного броские, и сохранить их на смартфон в хорошем качестве:

Единственный явный минус Vellum Wallpapers — очень много рекламы и настойчивые предложения купить подписку, чтобы избавится от объявлений.

Focos

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

Программа разработана для двойных камер и работает на iPhone 7 Plus и более поздних версиях, камера в которых снимает в портретном режиме. Но не всем этого достаточно: чтобы сместить фокус, имитировать съемку на объектив, настроить свет, убрать лишние объекты, в приложении есть спецразделы.

Основных функций пять. «Обрезка» похожа на стандартное кадрирование фото в айфоне:

«Апертура» регулирует фокус и степень размытия: на портрете можно переключиться с переднего плана на задний:

«Объектив» имитирует зеркальные камеры, «Освещение» настраивает теплоту света, диапазон и тени:

«Эффект» задает яркость, контрастность, экспозицию и более сложные фильтры вроде эффекта боке, чтобы свет на фоне размывался в блики необычной формы:

«Заплатка» — инструмент, которого не хватает в мобильных фоторедакторах: можно быстро убрать со снимка случайного прохожего или покрасить один объект в цвет другого:

Перед началом работы с разделами предлагают инструкцию. Некоторые возможности доступны только в про-режиме за 75 ₽ в месяц или 529 ₽ в год.

SketchAR

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

Как работает SketchAR: пользователь выбирает урок, рисунок из библиотеки скетчей или свою иллюстрацию и наводит камеру на бумагу. Или на пол, на стену — это полезно, если нужно примерить иллюстрацию на реальной поверхности. Ну и просто забавно:

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

Идеей обучающей программы с использованием AR разработчики грезят давно: уже сейчас есть много приложений, которые работают с дополненной реальностью. Правда, пока не идеально, но потенциал у технологии очевидный, особенно в образовании. Я тестировала SketchAR на iPhone 7, и приложение не всегда распознает лист бумаги и часто путается в пространстве, смещает рисунок за лист.

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

암기고래 (да, это корейское приложение и мы точно не знаем, как это переводится)

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

Почему тогда я рекомендую его? Лучшей визуализации слов и карточек с ассоциациями я не встречала. Это очень пригодится тем, кто только начал учить английский:

Это приложение — полноценная система обучения для корейцев, с видеоуроками, аудированием, тестами и карточками. Мы рассмотрим только последнее. Карточки сгруппированы в уроки по тематикам, которые расставлены в порядке усложнения — цифры, величины, времена года, одежда, мебель, животные, страны и десятки других категорий. К каждой карточке предлагается ассоциация — одна из авторских иллюстраций, которые нарисованы в одном стиле. Эти ассоциации ценны тем, что идеально передают значение любого слова, даже самого абстрактного:

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

Напишите, пользуетесь ли вы этими приложениями на iOS или Android, и какие из них оказались для вас полезными.

Пройти обучение

2 апр 19, 16:08
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Почему iOS-приложения на Swift 5 станут легче и быстрее

Swift существует, чтобы упрощать создание софта для устройств Apple. Тем удивительнее, что до сих пор iOS и другие «яблочные» операционные системы не имели библиотек Swift в своем составе. Стандартные функции языка разработчику приходилось включать в приложение. Пользователь дольше скачивал программу и тратил на нее больше дискового пространства. Написанная на Swift 3 программа не работала с откомпилированными модулями Swift 4. Это называют отсутствием обратной совместимости. Мелочь, а неприятно.

Стандартные библиотеки Swift не были «родными» для ОС — она воспринимала их как файлы пользователя и не спешила подгружать при запуске программ. Это влияло на скорость загрузки софта. Загрузка динамических библиотек Swift занимала 95 % времени от запуска приложения до начала выполнения кода.

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

Swift 5 обеспечивает бинарную совместимость. Это значит, что написанные на нем программы смогут без перекомпиляции работать с будущими версиями языка и в последующих релизах ОС от Apple. Кроме того, больше не нужно включать в программу стандартные функции Swift — они будут храниться в системе.

Сейчас ждут релиза свежие версии систем для мобильных устройств, телевизоров и часов: iOS 12.2, macOS 10.14.4, tvOS 12.2 и watchOS 5.2 — пока они на стадии бета-версий. Когда они выйдут, пользователи откроют App Store и обнаружат, что написанные на Swift 5 приложения весят меньше. А еще программы начнут быстрее запускаться, потому что библиотеки в составе ОС будут кешироваться в памяти, чтобы приложения обращались к ним мгновенно.

Apple обещает, что старые проблемы исчезнут в одночасье — по одному обновлению!

Будут улучшения ощутимы или это реклама?

Чтобы внести ясность, вы можете скачать из App Store интересные вам приложения и посмотреть, сколько весят Swift-библиотеки к ним. Бразильский разработчик Гильерме Рамбо так и сделал. Вот какие результаты он получил:

  • Twitter-клиент Chirp для Apple Watch весит 29 Мб, из которых 11,6 Мб — стандартные библиотеки Swift. После обновления до Swift 5 размер приложения уменьшится на 30 %, то есть оно будет весить менее 20 Мб. Результат впечатляющий, но он относится к библиотекам для watchOS. Как дела в iOS? Следующие приложения проходили проверку на iPhone XS Max.
  • Инженерный калькулятор PСalc при весе 86,8 Мб включает 7,5 Мб стандартных библиотек. С переходом на Swift 5 размер приложения уменьшится на 9 % — до 80 Мб.
  • Apollo for Reddit занимает 35,7 Мб, в том числе 7,5 Мб Swift-библиотек. Значит, в iOS 12.2 вес приложения не превысит 30 Мб, то есть сократится примерно на 20 %.

Точный объем дискового пространства, который можно будет сэкономить с переходом на пятый Swift, зависит от устройства.

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

Код, который компилировался на «четверке», скомпилируется и в Swift 5. А вот исходники на более ранней, третьей версии языка, новому компилятору не скормить. Еще учтите, что уже скомпилированные модули Swift 4 «прикрутить» к новым программам не удастся.

Сколько ждать изменений

Те, кто пользуются бета-версиями «яблочных» операционок и ставят софт через TestFlight, могут оценить разницу в весе приложений на Swift 5 уже сейчас! Остальным придется запастись терпением: дождаться свежей релизной версии своей ОС, а потом — обновления любимых приложений, написанных на Swift 4.

Зато с переводом собственных приложений на «пятерку» можно не откладывать. Когда пользователи ваших программ смогут оценить плюсы, о которых мы говорили выше, — зависит от вас. Не бросайте свои разработки — поддерживайте их и используйте новые возможности и преимущества, которые дает язык. Тем более что перейти на Swift 5 можно без существенной правки кода.

Пройти обучение

12 фев 19, 14:28
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

История языков программирования: 2000-е

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

Языки программирования сыграли важную роль в этих метаморфозах. Узнаем, какие из них появились в первом десятилетии XXI века и как способствовали прогрессу.

В начале 2000-х форм-фактор зачастую играл ключевую роль

Продолжение битвы

Начнем с того, на чем остановились в прошлой статье. Компания Microsoft в конце 90-х приступила к разработке C#, который должен был оспорить господство Java. Новый язык был представлен в 2000 году, но увидел свет только в 2002. Причина задержки заключалась не только в желании победить все «болячки» Java, но и в меняющихся тенденциях на рынке IT. Прежде в Microsoft ориентировались на создание десктопных приложений для Windows, но поняли, что это путь в никуда. Требовалась новая программная платформа, которая бы замкнула на себе множество языков, а также позволила работать с вебом, мобильными и стационарными устройствами. Так появилась .NET, представленная вместе с C# в 2000 году.

Этот шаг позволил в долгосрочной перспективе поднять интерес как к языку, так и ко всем продуктам Microsoft. Но компания уже допустила главный просчет. В конце 90-х ведущие производители мобильных устройств, среди которых — Nokia, Ericsson и Motorola, объявили о создании новой системы Symbian. Изначально она была закрытой, приложения писались на языках ассемблера и C, но долго игнорировать влияние Java было невозможно. Уже к началу 2000-х пользователи мобильных устройств могли устанавливать приложения на базе Java ME (ограниченной версии языка). Пока C# собирал аудиторию, Java уже работал на каждом втором смартфоне. Microsoft еще долго будет пытаться переломить эту ситуацию, но так и не преуспеет.

Зато у C# прекрасно пошли дела в игровой сфере. Как и сегодня, в 2000-х среди консольных приставок основная борьба разворачивалась между Sony PlayStation и Microsoft Xbox. Первая использовала в качестве базы C и язык ассемблера, потом перешла на собственный скриптовый язык. Фактически, Sony PlayStation была закрыта для сторонних разработчиков. Продукт компании Microsoft опирался на C++ и C# — в частности при работе с графическим движком Unity. Популярность C# возросла, но догнать Java так и не получилось: конкурент имел серьезное влияние на веб, а к концу десятилетия стал фундаментом системы Android.

Масла в огонь подливали и новообразованные языки. К примеру, Groove, работающий на базе JVM, подтягивал синтаксис Java к простоте Python, сохраняя функциональность — поэтому привлек внимание. Менее известные примеры: Whiley, AspectJ, Join Java, Tea. Свою нишу занял и появившийся в 90-х JavaScript.

Новый вектор обучения

Создание языков программирования для обучения — тенденция, берущая начало в 60-х годах. В первом десятилетии XXI века появился ведущий «детский» язык — Scratch. Разработанный в MIT, он позволял на основе простых графических блоков создавать анимацию. Первые 10 лет существования не принесли языку заслуженной славы. Дело в концепции, согласно которой программировать приходилось непосредственно в браузере. Из-за ограничений на трафик и скорость начинающие программисты со всего мира не могли себе позволить долго возиться с этим продуктом.

Виток функционального программирования

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

Частично этому способствовала новая волна маломощных машин (смартфонов). Высокие требования при скромной производительности вынуждали программистов мыслить функциями, а не привязываться к данным. Частично на популярность ФП повлиял новый язык — Clojure, диалект Lisp, работающий на основе виртуальной машины Java. Он будто связал десятилетия, позволив в новой эре применить известные принципы ФП. Чуть позже появился еще и ClojureScript для работы с JavaScript. Это был сигнал разработчикам языков: пора вводить возможности полноценного функционального программирования.

Big data

В 2008 году редактор журнала Nature Клиффорд Линч ввел понятие «большие данные». Этот термин он использовал при анализе растущего объема информации, поступающей в сервисы и социальные сети. Ведущие компании столкнулись с проблемой: необходимо было придумывать новые методы обработки и хранения данных, чтобы отвечать потребностям общества. Частично это решалось функциональным программированием, но требовались и новые специализированные языки.

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

Гонка мобильных вооружений

Чтобы понять, насколько быстро менялись технологии в первом десятилетии XXI века, достаточно вспомнить события на рынке мобильных телефонов. Он стартовал с огромными черно-белыми «коммуникаторами» под управлением закрытых операционных систем. Им на смену пришли кнопочные «смартфоны» с Symbian. Уже к концу десятилетия все эти наработки устарели — на рынке сенсорных аппаратов бушевала битва iOS и Android.

Аппараты Android работали, опираясь на язык Java, и с первого дня существования системы пользователи могли писать под нее приложения. Почти все базовые приложения Android — результат международного конкурса разработчиков, который устроил Google за год до официального запуска платформы.

В Apple избрали другой путь — использовать собственные наработки. Objective-C был создан в 80-х как одно из множества ответвлений языка С. Возможно, он так и канул бы в ХХ веке, если бы не приглянулся разработчикам компании NeXT и операционной системы NEXTSTEP. Компьютер NeXTcube собрал массу положительных отзывов, но не получил распространения из-за высокой стоимости проекта.

Главой NeXT был Стив Джобс. Он не только удержал компанию на плаву и выгодно продал ее Apple, но и внедрил все наработки в «яблочные» продукты. Надежность и быстродействие стали визитной карточкой Mac OS и iPhone OS.

В отличие от Android, который имеет открытый исходный код, системы Apple изначально были закрытыми для сторонних разработчиков. Компания выпускала средства разработки приложений после того, как оценивала заинтересованность в продуктах. Так случилось и с MacOS: Xcode была представлена спустя 2 года после платформы, — и с iOS: через год была обнародована SDK. Разумеется, исходные коды при этом не открывались и разработчики не получали полной свободы в персонализации. Родилось главное идеологическое противостояние в  IT 2010-х годов: анархическая свобода против бесконечных ограничений, массовость против качества, доступность против безопасности.

Поговорим об этом в следующей статье.

Пройти обучение

29 июн 18, 11:03
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

5 книг для начинающих разработчиков Objective-C

Программисты, которые только планируют изучать Objective-C, часто задают вопрос: «Обязательно ли перед этим учить С»? Мы подобрали хорошие книги для новичков, авторы которых по-разному отвечают на этот вопрос. Читайте экспертов и выбирайте, какой способ обучения больше подходит вам.

Программирование на Objective-C 2.0

Автор книги Стивен Кочан занимается программированием на С с момента выхода первого Mac в 1984 году. Он также автор нескольких бестселлеров по языку С, а его книга «Программирование на C для Mac» была включена в официальную подборку Apple Press Library.

Книгу по Objective-С Кочан написал в 2004 году, с тех пор она переиздавалась шесть раз.

Весь материал разбит на три большие части:

  • Язык Objective-C (все об основах языка).
  • Фреймворк Foundation (описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation).
  • Cocoa, Cocoa Touch и iOS SDK (обзор фреймворков Cocoa и Cocoa Touch, пошаговый разбор того, как разрабатывается простое приложение на iOS с использованием iOS SDK).

Первая глава начинается с написания простой программы на Objective-С и примера кода. Автор вводит новые понятия постепенно – весь материал выстроен так, чтобы к концу книги у читателя было достаточно понимания, чтобы написать первое iOS-приложение. Перед тем, как изучать это издание, разработчик советует немного разобраться с основами программирования – изучить теорию структуры данных и работы с памятью.

В предисловии Кочан пишет, что долго думал, в какой форме преподнести весь материал, которым он владеет. В результате автор решил рассказывать о языке Objective-C отдельно от С:

«Изучение всего языка C перед изучением Objective-C неприемлемо. Процедурный язык C содержит много средств, которые не являются необходимыми для программирования на Objective-C,  особенно на уровне новичков. На самом деле обращение к некоторым из этих средств противоречит методологии надежного объектно-ориентированного программирования. Также нет смысла в изучении деталей процедурного языка перед изучением объектно-ориентированного. Это дезориентирует программиста и мешает осваивать объектно-ориентированный подход к программированию. То, что Objective-C является расширением языка С, вовсе не означает, что нужно сначала выучить С. Поэтому я решил, что не буду начинать с обучения языку С и не буду предполагать, что читатель знает С. Вместо этого я принял необычный подход: обучение языку Objective-C и базовому языку С как объединенному языку с точки зрения объектно-ориентированного программирования».

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

У Стивена Кочана также есть видеокурс по Objeсtive-C. Многие разработчики очень положительно отзываются об этих видеоуроках, единственный минус — они доступны только на английском.  

Objective-C. Программирование для iOS и MacOS

В предисловии автор Аарон Хиллегасс объясняет, что его подход в обучении будет отличаться от подхода его коллег. Хиллегасс не хочет подробно останавливаться на синтаксисе Objective-C, но планирует большую часть материалов посвятить объяснениям, «как работает программирование и что о нем думают опытные программисты».

Это книга не будет легкой для чтения, предупреждает автор:

«Каждый грамотный программист Objective-C должен достаточно глубоко понимать С. Кроме того, многие идеи, которые в Objective-C выглядят довольно сложными, уходят корнями в простые концепции С. Часто я буду представлять некоторую идею на С, а затем направлять вас к современному аналогу той же идеи на Objective-C».

Автор говорит, что эту книгу бесполезно просто читать. Лучшим способом изучать программирование он считает написание кода, совершение опечаток, их исправление и постепенное привыкание к основным закономерностям языка.

Аарон Хиллегасс – известный разработчик и основатель проекта The Big Nerd Ranch. В 90-х он работал в компании NeXT (основана Стивом Джобсом после ухода из Apple), в 2000 году Apple нанял Хиллегасса, чтобы обучать своих программистов разработке в Cocoa. Позднее Хиллегасс запустил проект The Big Nerd Ranch – компания, которая разрабатывает программное обеспечение для Apple.

У Big Nerd Ranch есть популярные курсы и серия книг по программированию. Все книги Аарона Хиллегасса вышли именно в этой серии и стали классикой среди мобильных разработчиков. У автора есть и другие известные книги по программированию на Objective-C: iOS Programming и Cocoa Programming for Mac OS X (не переведены на русский язык).

Программирование для iOS 7

Автор Мэтт Нойбург настоятельно рекомендует читать эту книгу с iOS Programming Fundamentals и называет эту книгу продолжением. Читать ее нужно с базовыми представлениями о языках C, Objective-C и среде Xcode.

Книга состоит из трех частей, посвященным программированию на iOS:

  1. Описание языка C (автор считает, что изучать этот язык необходимо и он при написании приложений под iOS используется гораздо чаще, чем многие думают). Введение в программирование на Objective-C. Объектно-ориентированные концепции. Механизмы работы кластеров и экземпляров.
  2. Среда Xcode (именно в ней разрабатываются приложения под iOS). Все стадии разработки приложения вплоть до их размещения в App Store. Важная глава – о работе программы Interface Builder.
  3. Язык Objective-С с точки зрения среды Cocoa Touch.

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

Мэтт Нойбург, в отличие от предыдущего автора, настаивает на изучении Objective-C с основ и в том числе, с изучения языка С. Еще в начале книги он с сожалением говорит о большом количестве программистов, которые пишут приложения для iOS без правильной базовой подготовки:

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

В первой главе Мэтт Нойбург более детально объясняет, почему для программирования на iOS необходимо в первую очередь изучить язык С:

  • Objective-C является надмножеством языка программирования С. Это означает, что Objective-C включает в себя С; все, что верно для С, верно и для Objective-C.
  • Часть интерфейса API-системы iOS основана на С, а не на Objective-C.

Для изучения языка С автор советует книгу Брайана Кернигана и Дениса Ритчи (создателя этого языка) The C Programming Language.

iOS. Приемы программирования

Как рассказывает автор Вандад Нахавандипур в предисловии, Objective-C занимает особое место среди языков, на которых он программировал с детства. Его привлекла чистота языка – «каждая команда делает всего одну вещь, и делает ее хорошо».

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

В книге уделено большое внимание обновлениям, которые появились для iOS 7. Автор подробно рассматривает фреймворки и классы, доступные для SDK iOS 7:

  • Фреймворк UIKit и его дополнение UIKit Dynamics.
  • Технология Grand Central Dispatch, с помощью которой Apple в основном обеспечивает параллелизм в iOS.
  • Комплект для программирования карт Map Kit и фреймворк Core Location.
  • Синтаксические анализаторы для JSON и XML.
  • Библиотека фотографий и фреймворк ресурсов Assets Framework.
  • Новейшие возможности Xcode.
  • Фреймворк Core Data.
  • Фреймворк Core Graphics.
  • Фреймворк Pass Kit.

Автор данного издания не настаивает на изучении языка С для разработки приложений под iOS (по крайне мере, ничего не пишет об этом в данной книге):

«Чтобы программировать приложения для iOS 7, вы должны знать основы языка Objective-C, с которым мы будем работать на протяжении всей этой книги. Как понятно из названия, язык Objective-C основан на С, но имеет определенные расширения, которые облегчают оперирование объектами. Объекты и классы имеют фундаментальное значение в объектно-ориентированном программировании (ООП). К числу объектно-ориентированных языков относятся Objective-C, Java, C++ и многие другие».

Objective-C Recipes

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

Автор книги Мэтью Кэмпбелл – ведущий разработчик приложения Tasting Notes (приложение для дегустации вин) и основатель компании Mobile App Mastery. Компания занимается обучением мобильных разработчиков. Он обучил разработке на iOS более 800 программистов, написал несколько книг и работает над новой – Objective-C Syntax Quick Reference.

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

Примеры кода понятные – даже новичку удастся с легкостью их повторить. Эта книга не подойдет для изучения Objective-C с нуля, но станет хорошим продолжением прочтения предыдущих материалов, о которых мы говорили, поможет более глубоко погрузиться в разработку.

Кэмпбелл не пишет о том, что для изучения Objective-C нужно заранее изучить язык C. Он не акцентирует внимание на том, как лучше изучать этот язык, а делится результатами своей практической деятельности и, как мы видим из предисловия, большой любовью к этому языку:

«Изучение программирования сегодня – это изучение того, какую форму можно придать миру вокруг нас. У разработчиков Objective-C есть уникальная возможность создавать приложения, которые будут использовать люди по всему миру.

Пользоваться этим языком – одно удовольствие. В то время как другие языки часто кажутся неуклюжими, Objective-C грациозно демонстрирует свою мощь и разнообразие. Проблемы, которые кажутся нерешаемыми в других языках, с Objective-C тают на глазах. Это книга – об изучении Objective-C в его естественной среде. У Objective-С есть своя история о том, как решать проблемы элегантно. И он может рассказать ее в коде».

Пройти обучение

7 май 18, 16:15
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 1 по 10 | всего: 13

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru