Category: iOS

04
Янв
2021

Глючит :hover на IOS

Надо при ховере на элемент раскрывать скрытый текст. На тач девайчас соотвественно :hover отрабатывает по клику. Везде все работает без проблем.
Но на IOS при клике блок разворачивается и в этом положении зависает, тоесть блок не сворачива…

20
Дек
2020

Как сделать вот такой скрипт для Cheapshot?

Ребят, нужна помощь!
Есть AutoTouch на IOS. Язык использует Java и суть бота проста. При входе в игру (Cheapshot) активизируется скрипт, который находит определённую движущуюся цель (может по цветам пикселей) и убивает ее, после уничижения…

01
Дек
2020

Новогодняя распродажа онлайн-курсов и профессий в Skillbox

Заходите и выбирайте что-нибудь по душе: есть и для новичков, и для продолжающих. В списке направлений актуальные языки и сферы разработки, а также топовые технологии:
— Читать дальше «Новогодняя распродажа онлайн-курсов и профессий в Skillbox»

26
Ноя
2020

Как отследить событие при выходе из страницы в IOS?

У меня есть страница калькулятора
При вводе каких-либо данных, кнопка "Сохранить" активируется
Если пользователь ввёл данные и не сохранил их, то я показываю модальное окно, которое предупреждает, что все данные могут не сохранит…

26
Ноя
2020

Как отследить событие при выходе из страницы в IOS?

У меня есть страница калькулятора
При вводе каких-либо данных, кнопка "Сохранить" активируется
Если пользователь ввёл данные и не сохранил их, то я показываю модальное окно, которое предупреждает, что все данные могут не сохранит…

12
Ноя
2020

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

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

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


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

1) Контактная информация

Кроме заполнения полей «Имя» и «Фамилия» стоит добавить фото и дать контакты для связи.

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

Рекрутеру потребуется с вами связаться, поэтому оставьте как можно больше контактов, и обязательно включите ссылку на профили в соцсетях. Вас все равно будут искать, так что постарайтесь сэкономить время hr-специалиста. Укажите телефон, E-mail, Telegram, VK, Facebook, Skype, Habr и т.д.

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

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

2) Опыт работы


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

В поле «Компания» напишите: «Собственные проекты». Расскажите, какие проекты вы разрабатывали, даже если это не оплачивалось. Какие решали задачи, какие технологии и инструменты применяли. Обязательно опишите проблемы, с которыми столкнулись, и пути их решения. После этого напишите о результате: что конкретно было разработано. Дайте ссылку на показательный проект в общедоступном репозитории.

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

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

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

3) О себе


Важный фактор отбора. Перед отправкой резюме нужно зайти в описание желаемой вакансии и посмотреть запрашиваемые навыки.

Далее нужно вписать их в раздел «О себе», чтобы соответствовать требованиям компании. Не нужно придумывать скилы, сначала изучите их. Чтобы привлечь внимание и произвести впечатление, придется составить резюме под конкретного работодателя, сосредоточившись на его требованиях. Например, напишите о том, какие библиотеки вы используете в проектах, что умеете делать code review, пишете Unit-тесты и т.д. Создайте краткую справку по техническим навыкам.

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

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

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

В конце этого блока можете описать, как представляете себе хорошее место работы.

4) Ключевые слова

Если вы создаете резюме на HeadHunter (hh), заполните список в разделе «Ключевые навыки».

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

В качестве примера приведем список навыков iOS-разработчика:

  1. Swift
  2. Xcode
  3. iOS
  4. Objective-C
  5. Git
  6. SQL
  7. ООП
  8. ARKit
  9. MVVM
  10. VIPER
  11. UIKit
  12. Realm
  13. Alamofire
  14. REST API
  15. GCD
  16. Core Data

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

5) Высшее образование и повышение квалификации, курсы

Хорошо, если в этом блоке вам есть о чем рассказать.

Перечислите имеющиеся дипломы и сертификаты. Если их нет, попытайтесь отыскать. Сертификаты о прохождении курсов от обучающих платформ Udemy или Geekbrains отлично подойдут.

6) Чего не следует писать в резюме

Есть несколько вещей, о которых в резюме нельзя писать ни в коем случае.

  • Низкая заработная плата

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

  • Степень Junior

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

  • Нерелевантный опыт

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

7) Небанальное сопроводительное письмо

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

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

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

«Надеюсь, вы найдете мою кандидатуру соответствующей требованиям вакансии.
С уважением, (ваше имя)».

Сопроводительное письмо должно показывать вашу заинтересованность. Без него вас отнесут к людям, которые просто проходили мимо и решили откликнуться. Если сопроводительное письмо будет неизбитым и индивидуальным, его обязательно заметят!

8) Размещение резюме

Чтобы вас нашли с наибольшей вероятностью, лучше оставить свое резюме на разных российских рекрутинговых ресурсах, а не только на HH.

SuperJob, «Мой круг», «Хабр Карьера» – на последний сайт обратите особое внимание: там можно найти множество хороших вакансий от проверенных работодателей.


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

***

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

31
Окт
2020

🍏 5 навыков, необходимых iOS-разработчику

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

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

1) Язык Swift

Изучить язык поможет книга Василия Усова “Основы разработки приложений под iOS, iPadOS и macOS” или абсолютный ее аналог – русскоязычный сайт Swiftbook. В разделе “Учебник” есть вся необходимая документация – это перевод руководства по Swift на английском языке. На официальном сайте Swift можно также найти методические рекомендации.
Чтобы усвоить материал, воспользуйтесь бесплатными видеоуроками на YouTube (одного руководства будет недостаточно). Необходимо применять теорию на практике с первых дней обучения, и в этом вам помогут русскоязычные youtube-каналы The Swift Developers, Alex Skutarenko, Школа iOS-разработчиков. Стоит также открыть англоязычный туториал Lets Build That App от Sean Allen или посмотреть курс Стэнфорда. В комментариях вы сами можете поделиться понравившимися каналами.

2) Lifecycle View Controller

Жизненный цикл View Controller – это начинающаяся с создания последовательность шагов. Приходит создание View Controller со storyboard (выставляем view, button) или из кода. Начинается цикл с момента, когда приложение запускается, и на экране появляется первый View Controller. Вторым шагом является инициализация. Нужен View Controller, чтобы все объекты были установлены. Подготовить его к появлению и, вероятно, исчезновению, на экране помогают методы инициализации.

Методы инициализации View Controller:

  • ViewDidLoad

Этот метод устанавливает outlets и prepare, и подходит для первоначальной установки MVC. Можно обновить View в соответствии с Model. Метод вызывается только один раз за все время существования View Controller. Исключения: нельзя помещать зависящие от размера экрана объекты во View Controller с этим методом инициализации. Не будет работать на других устройствах, так как не приспособлен к ним.

  • ViewWillAppear

Метод обновляет View каждый раз, когда мы заходим во View Controller. Он позволяет узнать, что изменилось во View, когда мы были вне его. Метод отправляется каждый раз перед появлением MVC на экране, независимо от того, сколько раз он уже появился до этого. Улавливает состояние Model в тот момент, когда мы находились вне View и вошли в него. Подходит для случая, если Model – это сетевая база данных.

  • ViewDidAppear

Метод вызывается в момент, когда View уже появился на экране. Подходит для анимации, запуска таймера, наблюдения GPS, gyro-position. Вызывается только один раз и только когда мы уже на экране. Также можно применять для подгрузки тяжелых объектов, например, данных из сети. Мы используем именно этот метод для подгрузки данных, потому что он позволяет не блокировать экран от пользователя во время выполнения загрузки. Мы не применяем этот метод, если хотим обновить View в соответствии с Model, так как метод вызывается после вывода View на экран.

  • ViewWillDisappear

Метод вызывается перед уходом MVC c экрана. Используется, чтобы отменить сделанное во ViewDidAppear. Например, остановить выполнение таймера, прервать анимацию, прекратить наблюдение GPS. ViewDidAppear и ViewWillDisappear могут работать вместе. Когда MVC вновь появится на экране, сработает ViewDidAppear

  • ViewDidDisappear

Метод вызывается после того, как MVC полностью вышел с экрана. Применяется редко.

Для объектов, которые зависят от размера экрана (исключение для ViewDidLoad) используются 2 метода:

  1. override func ViewWillLayoutSubviews()
  2. override func ViewDidLayoutSubviews()

3) Архитектурные паттерны

В iOS существуют 4 основных способа организации кода, которые предполагают выделение отвечающих за решение разных задач блоков.

  • MVC (model-view-controller)

Model блок кода, который отвечает за данные.

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

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


  • MVP (Model-View-Presenter)

Presenter посредник между View и Model. Он реагирует на выполняемые во View действия пользователя, извлекает данные из Model и форматирует их для отображения во View.

View – UIView + UIViewController. Получает UI-события от пользователя.

Model блок кода, который отвечает за данные.

Преимущества перед MVC: код лучше разделен, проводить тесты удобнее.

Недостатки по сравнению с MVC: написание кода занимает больше времени, количество кода больше.


  • MVVM (Model-View-ViewModel)

Model данные приложения.

View Элементы пользовательского интерфейса (UI). ViewController + View.

ViewModel Обновляет Model в соответствии с View. Обновляет View в соответствии с данными в Model.


  • VIPER (View–Interactor–Presenter–Entity–Router)

View – Слой подразумевает файлы UIKit(включая UIViewController). Отображает, что сообщил Presenter и передает введенные пользователем данные назад Presenter’у.

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

Presenter – Подготавливает и передает визуальные данные для View/ViewController, которые будут видны пользователю. Presenter получает данные из Interactor и передает его во View. Он реагирует на ввод пользователем данных, запрашивает дополнительные данные из базы, либо, наоборот, передает их ей. Presenter решает, куда перенаправить действие – на Router или Interactor.

Entity – простые объекты данных без логики, которыми управляет Interactor.

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


4) Многопоточность

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

Зачем нужна многопоточность? Любое приложение работает на main thread главный поток. Main thread выполняет код, который отвечает за пользовательский интерфейс. Если добавить в главный поток блок кода, который подгружает данные из сети, отображение пользовательского интерфейса будет работать медленно или вовсе заблокируется. Причина: ядро процессора не может справиться с такой нагрузкой. Чтобы этого не произошло, нужно разделять задачи на потоки.

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


Цель многопоточности – увеличение производительности и отзывчивости пользовательского интерфейса.

Инструменты для многопоточности: Thread, Grand Central Dispatch и Operation.

Применяются на практике последние 2, так как они более высокого уровня.

Сравнение Grand Central Dispatch и Operation поможет решить, какой выбрать:

  • GCD – более простая реализация. Зависимости между блоками не создаются. Управлять блоками кода и планировать их нельзя. GCD вызывает потоки автоматически. Его используют для простых случаев, когда необходимо перенести блоки кода из главного потока.
  • Operation – более высокий уровень по сравнению с GCD. Есть возможность добавить зависимости, повторно использовать, отменить или приостановить. Состояние Operation можно контролировать. Можно указать максимальное количество операций в очереди, которые будут выполняться одновременно. Если нужно полностью контролировать процесс многопоточности, то используется Operation.

5) Grand Central Dispatch

Grand Central Dispatch (GCD) – это API для управления параллельными операциями. Оптимизирует приложение, откладывая времязатратные процессы в фоновый режим (non-main queue). С этой моделью многопоточности работать проще, чем с threads и Operation.

В очередях (queues) выстраиваются замыкания. GCD выполняет их, следуя FIFO паттерну (First In, First Out). Это означает, что замыкание, которое было поставлено в очередь первым, будет первым направлено на выполнение в собственном потоке.

Очередь бывает последовательная и параллельная.

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



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

GCD предоставляет три основных типа очередей:

1) Main queue – выполняется в основном потоке и представляет собой последовательную очередь. Отвечающий за пользовательский интерфейс код выполняется в main queue и только в ней. Наоборот, не отвечающий за UI тяжелый и времязатратный код, не выполняется в этой очереди. Такое распределение необходимо, чтобы UI был всегда отзывчивым.

Создание main queue:

        let mainQueue = DispatchQueue.main

    

2) Global queues – параллельные общие очереди, используемые для кода вне main queue.

        let backgroundQueue = DispatchQueue.global(qos: DispatchQos)

    

3) Custom queues – очереди, создаваемые программистом. Могут быть последовательными или параллельными.

При отправке задач в глобальные параллельные очереди нужно указать качество обслуживания (QoS – quality of service ), чтобы не указывать приоритет напрямую. QoS определяет важность задачи.

Классы QoS:

  1. DispatchQoS.userInteractive – высокий приоритет. Задачи, которые необходимо выполнить немедленно, чтобы обеспечить удобство работы пользователя. Общий объем кода должен быть небольшим, без временных задержек.
  2. DispatchQoS.userInitiated – высокий приоритет. Может занять немного времени. Для взаимодействующих с пользователем задач, от которых юзер ожидает немедленных результатов.
  3. DispatchQoS.background – приоритет “на фоне”. Представляет собой задачи, о которых пользователь не знает напрямую. Может работать медленно настолько, насколько это необходимо. Для задач, которые не требуют взаимодействия с пользователем и не зависят от времени.
  4. DispatchQoS.utility – низкий приоритет. Длительный фоновый процесс. Зачастую задачи с видимым для пользователя индикатором выполнения. Нужен для вычислений, ввода-вывода, работы в сети, непрерывной передачи данных и т.д. Класс разработан для обеспечения энергоэффективности.

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

  1. Autolayout, interface builder;
  2. UItableView;
  3. URLSession, JSON;
  4. User Defaults, Core Data, SQLite, Keychain;
  5. Утечки памяти, способы их устранения, ARC;
  6. Drawing, core graphics;
  7. Gestures (swipe,pan,tap);
  8. Animation;
  9. Работа с Github;
  10. Xcode Instruments;
  11. Alerts,Notification, application lifecycle.

Чтобы узнать об этих темах более подробно и научиться применять знания на практике, стоит поступить на факультет iOS-разработки GeekBrains. Занятия ведут профессионалы. Прошедшим курсы студентам онлайн-университет выдает свидетельства о профессиональной переподготовке и помогает с трудоустройством.

28
Окт
2020

👨‍🎓️ 35 приложений для изучения программирования на iOS и Android

Лучшие приложения для Android и iOS, которые научат детей логическому мышлению и основам кодинга. Для взрослых более сложные игрушки: Java, С, машинное обучение и Data Science.

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

1. Приложения для детей

1.1. От 3 до 4 лет

Code Karts – Pre-coding logic

Code Karts – Pre-coding logic
Code Karts – Pre-coding logic

Сайт | iOS | Android | Amazon | бесплатно первые десять уровней

Гонки на автомобилях и обучение программированию.

Dodoo Adventure: Kids Coding

Dodoo Adventure: Kids Coding
Dodoo Adventure: Kids Coding

iOS | Android | бесплатно, есть платные опции

Управление транспортным средством (от подводной лодки до ракеты) и решение головоломок.

Hopster Coding Safari for Kids

Hopster Coding Safari for Kids
Hopster Coding Safari for Kids

iOS | бесплатно, есть платные опции

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

Think & Learn Code-a-pillar

Think & Learn Code-a-pillar
Think & Learn Code-a-pillar

iOS | Android | Amazon | бесплатно

Решение задач по перемещению гусеницы.

1.2. От 5 до 7 лет

codeSpark Academy

codeSpark Academy
codeSpark Academy

iOS | Android | есть пробный период

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

Coding, the Musical

coding the musical
coding the musical

iOS | бесплатно

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

Tynker Junior

Tynker Junior
Tynker Junior

iOS | есть бесплатный период

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

Tommy the Turtle – Learn to Code

Tommy the Turtle – Learn to Code
Tommy the Turtle – Learn to Code

iOS | Android | бесплатно

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

Kodable

Kodable
Kodable

iOS | есть бесплатный период

Дети познакомятся с алгоритмами, логическими операциями, массивами и ООП.

Lightbot Jr : Coding Puzzles for Ages 4+

Lightbot Jr : Coding Puzzles for Ages 4+
Lightbot Jr : Coding Puzzles for Ages 4+

iOS | Android | Amazon | платно

Игра «Lightbot Junior» позволяет игрокам освоить на практике основные понятия и идеи программирования: циклы, операторы, написание инструкций, отладку программ и т.д.

ScratchJr

ScratchJr
ScratchJr

iOS | Android | Amazon | бесплатно

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

Code Kingdom: Treasure

Code Kingdom: Treasure
Code Kingdom: Treasure

iOS | бесплатно, есть платные опции

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

Daisy the Dinosaur

Daisy the Dinosaur
Daisy the Dinosaur

iOS | бесплатно

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

GoldieBlox: Adventures in Coding – The Rocket Cupcake Co.

GoldieBlox: Adventures in Coding – The Rocket Cupcake Co.
GoldieBlox: Adventures in Coding – The Rocket Cupcake Co.

iOS | платно

Головоломки с разным уровнем сложности. Формирование заказа из ингредиентов и расчет пути доставки

Nancy Drew: Codes & Clues – Mystery Coding Game

Nancy Drew: Codes & Clues – Mystery Coding Game
Nancy Drew: Codes & Clues – Mystery Coding Game

iOS | Android | Amazon | есть бесплатные уровни

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

Osmo Coding

Osmo Coding
Osmo Coding

iOS | бесплатно

В Osmo’s Coding Awbie дети используют блоки кода, чтобы запрограммировать путешествие для персонажа Awbie.

Tynker: Coding Games for Kids

Tynker: Coding Games for Kids
Tynker: Coding Games for Kids

iOS | бесплатно, есть платные опции

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

1.3. От 8 до 9 лет

Cato’s Hike: A Programming and Logic Odyssey

Cato's Hike: A Programming and Logic Odyssey
Cato’s Hike: A Programming and Logic Odyssey

iOS | платно

Игроки изучают циклы и операторы if/else. 60 уровней, 12 уроков с возможностью сохранения прогресса.

Code the Robot. Save the Cat

Code the Robot. Save the Cat
Code the Robot. Save the Cat

iOS | Android | платно

«Запрограммируй робота. Спаси кошку» – познавательная игра, которая поможет в изучении основ программирования (циклы, функции) и логики.

Grasshopper: Learn to Code

Grasshopper: Learn to Code
Grasshopper: Learn to Code

iOS | Android | бесплатно

«Кузнечик» – лучший способ достичь базового понимания программирования и познакомиться с JavaScript.

Knowin: Learn Coding

Knowin: Learn Coding
Knowin: Learn Coding

iOS | платно

Погружение в основы программирования на Swift и Python.

Box Island – Award Winning Coding Adventure

Box Island – Award Winning Coding Adventure
Box Island – Award Winning Coding Adventure

iOS | бесплатно первые десять уровней

Основы кодинга, с которыми познакомят детей со следующими темами:

  1. алгоритмическим мышлением;
  2. циклами;
  3. операторами;
  4. отладкой.

1.4. От 10 до 12 лет

Booeys: A Ghost’s Code

Booeys: A Ghost's Code
Booeys: A Ghost’s Code

iOS | Android | Amazon | бесплатно

Тридцать головоломок с разными вариантами финала.

Move the Turtle. Learn to code

Move the Turtle. Learn to code
Move the Turtle. Learn to code

iOS | платно

Ребенок познакомится с понятиями циклов, переменных и условных операторов.

Swift Playgrounds

Swift Playgrounds
Swift Playgrounds

iOS | бесплатно

Swift Playgrounds не требует умения программировать, поэтому она идеально подходит для учеников, только начинающих изучать кодинг на Swift.

2. Приложения для взрослых

Enki

Enki
Enki

Сайт | iOS | Android | платно

Уроки: SQL, Data Science, Computer Science, JavaScript, Python, CSS, HTML, безопасность, блокчейн, Git, Docker, MongoDB, Linux и Java.

CodeHub

CodeHub
CodeHub

Сайт | Android | бесплатно

Уроки: HTML, CSS.

Programming Hub

Programming Hub
Programming Hub

Сайт | iOS | Android | есть бесплатные уроки

Уроки по темам: HTML, CSS, JavaScript, C, C++, C#, Swift, Python, Java, искусственный интеллект, машинное обучение, Data Science, SEO, JS-фреймворки, Django, MATLAB, UI/UX, Kotlin, Ruby, Go, PHP, Android-разработка.

Grasshopper

Grasshopper
Grasshopper

Сайт | iOS | Android | бесплатно

Уроки JavaScript.

Encode

Encode
Encode

Android | бесплатно, есть платные уроки

Уроки по темам: Python, JavaScript, HTML. CSS.

Mimo

Mimo
Mimo

Сайт | iOS | Android | платно

Уроки по темам: Python, Kotlin, Swift, HTML, CSS, JavaScript, SQL, PHP, Java, C#, C++, Ruby, Git.

Programming Hero

Programming Hero
Programming Hero

Сайт | iOS | Android | бесплатно, есть платные уроки

Уроки по темам: структуры данных, алгоритмы, ООП, SQL, HTML, CSS, JavaScript (Vue.js), Bootstrap, C, C++, Python, Java, разработка игр на pygame.

Sololearn

Sololearn
Sololearn

Сайт | iOS | Android | платно

Уроки по темам: JavaScript, Python, SQL, HTML, CSS, Swift, Java, C++, PHP, Ruby.

Khan Academy

Khan Academy
Khan Academy

Сайт | iOS | Android | бесплатно

Уроки по темам: алгоритмы, JavaScript, HTML, CSS и SQL.

Codecademy Go

Codecademy Go
Codecademy Go

Сайт | iOS | Android | платно

Уроки по темам: HTML, CSS, Python, JavaScript, Java, SQL, Bash/Shell, Ruby, C++, R, C#, PHP, Go, Swift, Kotlin.

Что еще попробовать

После спасения кошки в игре «Code the Robot. Save the Cat», изучения JavaScript в «Grasshopper: Learn to Code», и прохождения всех курсов в Programming Hub попробуйте наш онлайн-курс (Proglib + МГУ) по математике в Data Science.

Лекция по комбинаторике для начинающих

14
Окт
2020

Преодолеть выставленные отделом HR на пути соискателей препоны едва ли не труднее, чем освоить профессию iOS-разработчика. Разбираем распространенные вопросы и даем примеры практических заданий из реальных собеседований при трудоустройстве.

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

Телефонный звонок рекрутера

По телефону будут спрашивать, почему вы выбрали профессию разработчика. «Как вы попали в эту область? В каких проектах участвовали?» – HR задает наводящие вопросы, исходя из резюме. Его цель – узнать вас получше. Вопросов будет меньше, если резюме грамотно оформлено и демонстрирует компетентность соискателя.

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

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

Очное собеседование с рекрутером

До беседы с техническим специалистом с вами может опросить рекрутер по списку поверхностных вопросов на знание технологий: «Что такое Swift?», «Что такое ООП?» и т.д. Он может дать вам мини-тест, в котором нужно будет набрать энную сумму баллов, чтобы пройти на собеседование с техническим специалистом. Задача HR – отсеивать заведомо негодных соискателей.

Собеседование с техническим специалистом

Теоретические вопросы

Общение с техническим специалистом начинается с проверки ваших теоретических познаний. На рядовых собеседованиях задают типовые вопросы – всего их около десятка.

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

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

1. Что такое свойство lazy?

Значение ленивого свойства не вычисляется до первого использования.

2. Что такое mutating, и где он используется? Приведите примеры.

По умолчанию свойство структуры не может быть изменено внутри функции. При попытке изменить var name внутри func makeAnonymous вы получите ошибку. Мы можем это осуществить, если поставим ключевое слово mutating перед func.

        struct Person {
    var name: String
    
    mutating func makeAnonymous() {
        name = "Anonymous"
    }
}
    

3. Что делают map, filter и reduce? Приведите примеры.

Метод map позволяет применить переданное в него замыкание для каждого элемента коллекции.

        let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

let result = numbers.map { $0 * 10 }

print(numbers) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(result) //[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    

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

        let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let filted = numbers.filter{$0 % 2 == 0}
filted
//[2, 4, 6, 8, 10]
    

Метод reduce позволяет объединить все элементы коллекции в одно значение в соответствие с переданным замыканием.

        let cash = [10,50,100,500]
let total = cash.reduce(210, +) //870
    

4. В чем разница между NSArray и NSSet?

NSArray – это упорядоченная коллекция, а NSSet – неупорядоченная. NSSet используется для создания уникальных объектов, а NSArray может иметь повторяющиеся.

5. Какие архитектуры вы использовали? Какая из них у вас любимая и почему?

Стоит потренироваться в использованию архитектуры MVVM, поскольку она наиболее распространена.

6. Что такое main queue?

Main queue – очередь, в которой происходят все операции с пользовательским интерфейсом (UI). Затратные по времени блоки кода, вроде загрузки данных из сети, мы уводим с main queue. Когда мы получаем данные через другую очередь, main queue — свободна и обслуживает события UI. Затем мы вновь возвращаемся на main queue, чтобы обновить элементы интерфейса.

Переключение затратных заданий с main queue на другой поток всегда async. Метод sync на main queue не применяют, потому что это приведет приложение к deadlock.

7. Что такое Grand Central Dispatch? Что такое Dispatch Queues?

Grand Central Dispatch (GCD) – технология Apple API, реализующая параллелизм (выполнение нескольких потоков одновременно) в многоядерном процессоре. GCD управляет общим пулом потоков и решает, когда именно выпустить поток на ядро в зависимости от доступных системных ресурсов. На каждое ядро приходится по одному потоку.

GCD оптимизирует приложение и обеспечивает вызов потока безопасно и автоматически.

Платформа GCD объявляет несколько типов данных и функций (Dispatch Queues, Dispatch Sources, Dispatch Groups, Dispatch Semaphores).

Dispatch Queues – очередь, в которую вы отправляете единицы работы (блоки кода). Затем GCD решает, в каком потоке их выполнять и сколько параллелизма требуется.

8. Что такое UIStackView?

UIStackView– контейнер для UIView. В него мы помещаем выстраивающиеся в виде стека горизонтально или вертикально UIView. Выкладываться они будут автоматически в соответствии с доступным пространством, которое определяется через настройки: alignment, distribution, spacing.

9. Какие существуют логические операторы, что такое оператор объединения с nil?

  1. !a – НЕ;
  2. a && b – И;
  3. a | | b – ИЛИ;
  4. ?? – оператор объединения с nil.

?? возвращает либо значение опционала, либо значение по умолчанию (второе).

        var optionalInt: Int? = 90
var result = optionalInt ?? 30 // 90
    

Если optionalInt не nil, оно возвращается, в противном случае возвращается строка по умолчанию.

10. Объясните иерархию классов UIButton. Суперкласс UIViewController?

NSObject → UIResponder → UIView → UIControl → UIButton

UIResponder → UIViewController

***

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

Практические вопросы

В практической части вам дадут MacBook и попросят решить несложные задачи. Затратных по времени заданий скорее всего не будет – едва ли технический специалист захочет тратить на соискателя слишком много времени.

Если нужно написать приложение, это попытка проверить, чем вы руководствуетесь, как делаете переходы и какую архитектуру используете. Лучше всего показать умение применять MVVM и подчеркнуть, что выбор обоснован легкостью трансформации в VIPER.

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

Расскажите, как бы вы проектировали такое приложение:

  1. Бесконечная лента картинок. Каждый элемент ленты – картинка + мета-информация к ней. При нажатии на картинку та открывается в полном размере. Источник картинок – публичный API. Необходимо реализовать оффлайн-режим, т.е. приложение должно функционировать без сети в максимально возможной степени.
  2. Спроектировать чат. Пример: Telegram. Функциональность: список диалогов, в диалогах – сообщения. Можно отправлять текст, фото, видео, аудио. Из диалога можно посмотреть профиль пользователя.
  3. Есть два источника: А и В. Необходимо отобразить на экране список получаемых из них элементов.

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

Не стесняйтесь спрашивать сами

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

О чем можно спросить:

  1. Какие задачи придется выполнять в первое время?
  2. Будет ли ментор?
  3. Какой стек технологий использует компания?
  4. Как компания относится к code review?
***

Самообразование необходимо каждому ИТ-специалисту, но если вы нацелены на карьеру программиста всерьез, стоит обратить внимание на факультет iOS-разработки GeekBrains. Занятия ведут опытные преподаватели, а успешно прошедшим курсы студентам онлайн-университет не только выдает дипломы, но и помогает с трудоустройством.

29
Сен
2020

На сколько функционален новый Swift на Windows?

Друзья, подскажите, стоит ли учиться программировать мобильные приложения для ios в Swift на Windows, если мака нет. Недавно Apple анонсировала новый выпуск swift для windows. На сколько он функционален и отлажен ? У кого есть опыт ?
http…

22
Сен
2020

При удалении readonly не вызывается клавиатура на iOS Safari

Сделал костыль, чтобы браузер не вставлял пароль автоматически в поле пароль, так как современные браузеры игнорируют autocomplete="off" и прочие другие способы, которые можно найти. Поэтому я задаю полю аттрибут readonly и при ф…

20
Сен
2020

Сравниваем инструменты тестирования производительности мобильных приложений, в том числе предоставляемые услуги и стоимость: Gatling, JMeter, Apptim и другие.

Пользователи не любят…

09
Сен
2020

В Safari на iOS произвольно меняется уровень громкости при проигрывании видео через video-react

Всем привет!
Есть приложение на React, простая интерактивная игра, где на страничке проигрывется видео. На видео ведущий задает вопросы или предлагает нажать на какие-либо кнопки, которые отображаются на экране. Ответы на вопросы можно так…

04
Сен
2020

Шрифты непосредственно влияют на удобство работы, поэтому мы выбрали 10 лучших шрифтов, созданных для улучшения ваших Android/iOS приложений.

Почему хороший шрифт так важен?

01
Сен
2020

1 марта – 11 октября, онлайн: олимпиада «Волга-IT’20»

Цифровая олимпиада по информационным технологиям: веб-дизайн, мобильная разработка, Motion Design, и др. Регистрация до 13 сентября.
— Читать дальше «Олимпиада Волга-IT’20»

06
Авг
2020

21–23 августа, онлайн: хакатон Tele2 Solutions Days

Общий призовой фонд хакатона составит 500 000 рублей, а некоторые участники смогут получить приглашение на работу в Tele2 и «Лигу Цифровой экономики».
— Читать дальше «Хакатон Tele2 Solutions Days»

28
Июл
2020

Пройдите тест на знание Swift и определите уровень владения пятой версией языка программирования iOS приложений. Под силу ли вам ответить правильно на все 10 вопросов?

28
Июл
2020

Дата (счетчик) в iOS возвращает NaN

Всем привет. Я разрабатываю сайт который я должен показать счетчик даты. Счетчик отлично работает на Андроид но на iOS счетчик возвращает NAN (not a number) У меня есть следующий код
$(document).ready(function () {
$(‘.counter__wrap’).each…

23
Июл
2020

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

Немного о себе

Эта статья написана по моему личному опыту. Сейчас я заканчиваю факультет программирования Берлинского университета им. Гумбольдта и работаю в Daimler AG/Mercedes Benz. Первое приложение разработала в университете. Это децентрализованное Android-приложение, позволяющее группе людей общаться без доступа к сети. Штука полезная, особенно когда вы где-то в горах или в джунглях 🐵

Однако сам процесс разработки под Android меня не впечатлил, я решила, что разработка приложений – не моё. К счастью, потом я приняла участие в менторском проекте между моим университетом и медицинским университетом Шарите. Так я открыла для себя разработку мобильных приложений для iOS.


Легко ли начать разработку для iOS с нуля?

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

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


Разработка мобильных приложений под iOS – это не только весело, но и выгодно. В США за 2019 г. средняя годовая зарплата составляла 84 тыс. долл.

На диаграмме учитываются зарплаты разработчиков Apple, IBM и Sapient Corporation.
На диаграмме учитываются зарплаты разработчиков Apple, IBM и Sapient Corporation.
<a href="https://www.glassdoor.de/Geh%C3%A4lter/vereinigte-staaten-von-amerika-ios-developer-gehalt-SRCH_IL.0,30_IN1_KO31,44.htm" target="_blank" rel="noopener noreferrer nofollow">На Glassdoor можно найти годовую зарплату в 107 тыс. долларов!</a>
На Glassdoor можно найти годовую зарплату в 107 тыс. долларов!

C тех пор, как Apple запустил App Store в 2008 г., было разработано 2 млн приложений. Согласно Appinventiv к 2021 году количество загрузок достигнет 353 млрд. Что насчёт России? По данным портала SuperJob в России разработчики iOS-приложений получают от 64 до 120 тыс. рублей.

Итак, что нужно, чтобы получить работу в качестве разработчика iOS?

1. Легче всего будет работать на macOS

Разработка приложений для iOS обычно осуществляется на Macbook/iMac. Не нужно гнаться за самой новой моделью, подойдет и простенький Air. Главное, чтобы на устройстве можно было установить последнюю версию macOS. Можно разрабатывать и на виртуальной macOS-машине, но это «больно».

2. Установите необходимый софт для iOS-разработки

Самая широко используемая IDE для iOS-разработки – это Xcode. Можно за день изучить, что где находится и для чего используется. Стоит потратить время и на продвинутые фичи и горячие клавиши, это облегчит и ускорит процесс разработки.

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


Важно уметь адаптироваться к изменениям. Я бы не сказала, что каждая новая фича – это что-то хорошее. Если запустить Xcode, то можно увидеть много маленьких кнопок и панелей. Поверьте, нет ничего раздражительнее, когда в них что-то меняют, передвигают, удаляют, и потом надо тратить тысячу часов на их поиск. Ладно, преувеличиваю (нет).

3. Создайте пользовательский интерфейс

Разработчику iOS-приложений обязательно нужно уметь создавать пользовательские интерфейсы. Подвох в том, что это можно сделать несколькими способами. Например, используя Interface Builder и Storyboards из туториалов Apple. Или с помощью кода, для чего есть тоже множество разных решений. А можно взять SwiftUI – фреймворк для декларативного программирования пользовательских интерфейсов. Он относительно новый, но уже успел завоевать симпатии разработчиков.


Что касается дизайнов и прототипов, их я создаю в Sketch или Figma. Еще пользуюсь Canva. Практически всегда от клиентов поступают готовые ассеты. Поэтому, даже если вы не очень разбираетесь в дизайне, нужно уметь пользоваться соответствующими инструментами.

4. Нетворкинг и работа с API

Обязательно освойте работу с разными форматами данных. По крайней мере, нужно уметь парсить JSON и знать нетворкинг-классы Apple (URLSession) и библиотеки, к примеру, сетевую библиотеку Alamofire.

5. Научитесь взаимодействовать с базами данных

Самые распространенные базы данных в разработке iOS – это MongoDB, Firebase и Realm.

6. Контроль версий

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

7. Изучите пошаговые туториалы

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

Мой первый Swift dev курс я прошла на Udemy (iOS разработка на Swift 5 от Angela Wu). Мне он понравился тем, что составлен для новичков и сложность нарастает линейно. То есть не будет такого, что на первом уроке вы установили Xcode, а на втором кодите Flappy Bird. В курсе огромное количество готовых ассетов, что я нахожу огромным плюсом, так как можно сосредоточиться на программировании и не ломать голову над тем, куда поместить очередной UI-элемент или какой цвет придать кнопке.

Еще много полезностей можно найти на сайте Hacking With Swift. Там всё понятно и бесплатно. Сайт одобрил сам Крис Латтнер, создатель Swift. У проекта есть канал в Slack, где можно законнектиться с iOS-разработчиками со всего мира. Создатель сайта Пол Хадсон активно общается с пользователями в Slack и Twitter (@twostraws).

Примечание
Библиотека программиста также составила подборку 70 YouTube-каналов и плейлистов о мобильной разработке, в которой есть отдельный раздел с видеокурсами по разработке под iOS.

Если вы уже разрабатываете iOS-приложения и ищете работу, то канал iOS-разработчика Сина Аллена поможет грамотно подготовиться к собеседованию. Син рассматривает самые каверзные вопросы, а также загружает туториалы для разработчиков разных уровней. Не каждый может похвастаться 10-летним опытом разработки в Swift, а именно столько лет исполнилось Swift в этом году!

8. Практикуйтесь

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

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

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

Если интересно, могу написать о своей учёбе в университете, в том числе об учёбе во время COVID-пандемии.

***

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

07
Июл
2020

Cordova plugin device иногда возвращает строку mobile вместо объекта с информацией об устройстве

Вопрос, касательно разработки приложения на ios с помощью Cordova.
Если точнее, то касательно плагина device, который возвращает информацию об устройстве(uuid, версию ios и прочее)
Плагин вызывается на этапе полной загрузке страницы (до вы…

02
Июл
2020

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

19
Май
2020

Обработка нажатия на iOS-устройствах

Столкнулся с какой-то аномалией. Всем известно, что у iOS свои приколы с обработкой клика на мобильной платформе, но тут просто что-то невероятное.
Я написал несложное приложение и просто не понимаю почему не срабатывают клики на div элеме…

14
Май
2020

Браузеры на Apple не передают COOKIE в подгружаемых элементах

Скрипт написан на PHP. При первом (сведений о/от сайта в браузере еще нет) запросе документа сервер отправляет Cookie

if(isset($_COOKIE[‘PHPSESSID’]))
session_id($_COOKIE[‘PHPSESSID’]);
session_start();

затем весь документ

exit($va…