Разное

IOS-разработка для начинающих: учимся создавать приложения для iOS с нуля. Как грамотно начать погружаться в разработку под iOS и что для этого нужно

IOS-разработка для начинающих: учимся создавать приложения для iOS с нуля. Как грамотно начать погружаться в разработку под iOS и что для этого нужно

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

Язык программирования

Чтобы писать программы для определенной платформы, нужно использовать конкретный язык программирования. Разработка приложений для iOS и Android различается. Если у платформы от "Гугла" выбирать необходимо язык Java, то для iOS выбор стоит между Objective-C и Swift. Длительное время разработка под платформу iOS велась только при помощи языка программирования Objective-C. Несмотря на то что ему много лет, он все еще развивается и используется большим числом разработчиков. Но его минус - это высокий порог вхождения.

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

Что понадобится для начала

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

  • компьютер или ноутбук с операционной системой OSX на борту;
  • среду разработки Xcode, которая является бесплатной.

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

  • запускать разработанные программы не в симуляторе, а на настоящих устройствах;
  • размещать приложения в магазине App Store;
  • загружать новые версии среды разработки и iOS.

В новых версиях Xcode появился такой элемент, как «песочница», названный Playground. Здесь разработчик может поэкспериментировать с новым языком программирования.

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

С чего начинается разработка приложений для iOS и Android? Обучение происходит на практике. Поэтому начинать надо с нее. Много теории - это не всегда хорошо. Ведь если человек прочтет от корки до корки десять он не станет. Нужно действовать.

Playground

Данная «песочница» - это замечательное окружение для изучения языка программирования. Как она выглядит? Пользователь вводит строчку программного кода и сразу же видит результат выполнения. После того как станет понятно, что написанный фрагмент работает так, как нужно, его можно просто перенести в проект. При помощи «песочницы» можно решить такие задачи, как:

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

Разработка приложений для iOS: с чего начать

Теория - это, конечно, хорошо, но, как говорилось ранее, нужна практика. Для того чтобы познакомиться с «песочницей», нужно запустить среду разработки Xcode. После запуска пользователь может видеть окно, в котором предлагается создать новый проект или же запустить Playground. Нужен второй пункт. Теперь необходимо придумать имя и сохранить «песочницу» в любое удобное место на компьютере. Кстати, разработка приложений для iOS на Windows тоже возможна, но тогда потребуется решить большое число проблем. Это и установка пиратской операционной системы, и правка важных файлов, и множество ошибок и вылетов.

После сохранения будет запущен тот самый Playground, который нужен.

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

Для начала можно попробовать написать следующее:

for var y = 0; y < 10; ++y {

println (“result: (z)”)

После этого «песочница» изменит свой вид. В столбце справа (панель результатов) показаны значения для каждой строки, которые получаются после выполнения. Также в правом столбце можно включить отображение временной панели, которая дает возможность проследить изменения во времени выбранного выражения. Здесь же отображается консольный вывод с текстом, который выводился бы программой.

Комментирование кода

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

Переменные

Итак, приложения пишутся на языке программирования. Базу любого языка составляют переменные. Разработка приложений для iOS и Android без использования переменных невозможна. Как понятно из названия, это контейнер, в котором содержится изменяемое значение. Каждая переменная должна обладать уникальным именем и может содержать в себе как числовые, так и текстовые значения. В языке программирования Swift переменные определяются при помощи слов var и let. Во втором случае переменная не может меняться и должна быть проинициализирована при объявлении. В первом случае переменная инициализируется непосредственно перед использованием.

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

Вывод результатов

Результат выполнения программы выводится в консоль. Что это такое? Это то, что обеспечивает взаимодействие пользователя с компьютером. Так, консолью вывода раньше называли монитор, а консолью ввода - клавиатуру. Сейчас значение терминов немного изменилось. Так называют программное окно, предназначенное для ввода и вывода команд. Разработка приложений для iOS нередко требует вывода каких-то данных. Для этого в языке Swift предусмотрены команды print и println. Первая отличается от второй тем, что автоматически начинается с новой строки.

Функции

Следующее базовое понятие в программировании - функции. Это некая последовательность действий, которые выполняют конкретную задачу. Каждая функция способна принимать какие-то значения, а также возвращать результат. Для использования этой конструкции ее необходимо сначала объявить при помощи ключевого слова func. После него указывается имя, а также круглые скобки. Если должно быть возвращено какое-либо значение, то после скобок указывается его тип. Если возвращаемого значения нет, то тип можно не указывать или же указать «пустой» тип - void. В круглых скобках находятся значения, которые функция принимает. Для вызова функции указывают ее имя и значения для аргументов.

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

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

Что теперь?

Итак, как видно из вышесказанного, разработка приложений для iOS своими руками вполне может оказаться по силам каждому. Главное - выучить основы языка программирования, познакомиться со средой разработки и очень много и часто практиковаться. Именно практика помогает добиться значительного прогресса. А ведь описанное здесь - это только начало. Дальше в мире программирования будет много интересного, сложного, увлекательного. Это поможет всегда держать мозг в тонусе, создавать что-то новое и неплохо зарабатывать. Ведь техника от Apple используется во всем мире. Поэтому ваше приложение смогут оценить миллионы людей.

Эта статья открывает цикл, предназначенный для новичков. Смею надеяться, что уровень подачи материала позволит разобраться в нем даже людям не знакомым с программированием. Начнем наше повествование с небольшого лирического отступления. Приложения для iPhone и iPad пишутся на языке Objective-C. Этот язык широко использовался в компании NeXT и пришел в Apple после возвращения Стива Джобса. В настоящее время Objective-C является основным языком разработки OS X и iOS приложений.

Для того, чтобы начать программировать под iOS, Вам понадобится компьютер Mac на базе процессора Intel и среда разработки XCode. Если у Вас нет Mac-а - не беда. Возможно Вам подойдет один из описанных методов решения этой проблемы. Мы будем ориентироваться на XCode 4 и iOS5.

Установка XCode

Для начала нам придется зарегистрироваться наApple-овском dev сайте. Перейдите по ссылке и нажмите на register. Щелкните кнопку Get Started и пройдите процесс регистрации. Там все довольно просто, поэтому я не буду останавливаться на этом моменте. После регистрации Вам пришлют письмо с вашим Apple ID. Вернитесь на страницу Apple Developers и используйте его для входа в защищенную зону. В разделе DevCenters щелкните по ссылке iOS. Как видите, Apple предлагает вам кучу документации, исходников и уроков. На этой странице есть все, что нужно для начала разработки под iOS. В самом низу есть кнопка Download Xcode, которую нужно нажать. После загрузки установите Xcode на свой Mac.

Знакомство с интерфейсом XCode 4

Для запуска Xcode перейдите на свой главный диск и щелкнете по developer>Applications.

После того, как Xcode запустится, выберите пункт меню File>New Project, затем "Single View Application" и введите в качестве имени проекта (Product Name) HelloWorld. В результате у вас должно отображаться что-то вроде этого

Весь Ваш код и ресурсы разложены по специальным папкам, которые располагаются в левой части окна Xcode. Панель называется "Project Navigator" и содержит все элементы Вашей программы. Файлы с исходным кодом имеют расширение ".h" и ".m". Если вы щелкните по такому файлу, то в правой части Xcode откроется редактор с кодом.

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

Кнопка "Run" запускает ваш проект. Вы можете протестировать свое приложение и убедиться, что оно ведет себя действительно так, как вы того ожидаете. Кнопка "Tasks" останавливает запущенное приложение.

С помощью кнопки Schemr можно выбрать целевую платформу, где будет запускаться ваше приложение. Здесь вы можете выбрать какой-нибудь simulator, и отлаживать программу на компьютере, или запустить ее на своем iPhone (iOS Device), если Вы заплатили сбор в $99. Единственное преимущество, которое дает этот платеж - возможность запускать программу на реальном устройстве и размещать ее в App Store. Я бы не рекомендовал Вам тратиться до того момента, пока у Вас не будет готова нормальная программа.

Breakpoints (точки остановки) - очень полезная штука. С помощью этой кнопки вы можете отметить в исходном коде строки, и когда в ходе выполнения программы дело дойдет до помеченной строки, программа приостановится, и вы сможете посмотреть состояние переменных. Это очень мощный и повсеместно используемый инструмент.

Нажмите кнопку "Run". Вы увидите окно эмулятора со своим проектом. Как видите, пока он не блещет функциональностью - это просто заготовка.

Программирование для iPhone -Первый шаг

Довольно ходить вокруг да около, давайте что-нибудь закодим. В окне Project Navigator содержатся файлы с исходным кодом. Щелкните по какому-нибудь.m файлу. Обратите внимание, некоторые строки окрашены в зеленый цвет - это комментарии, которые выполняют роль шпаргалок. Чтобы не запутаться в коде, программист может оставлять себе подсказки и пояснения. Для обозначения комментариев в языке C используется сочетание слешей //. Все, что находится в строке правее этих знаков, считается комментарием. Если Вы хотите написать многострочный комментарий, то можете использовать сочетания /* и */ для обозначения начала и конца многострочного комментария.

Прежде чем приступить к написанию кода приложения, я должен а пальцах объяснить вам несколько концепций: ООП (объектно-ориентированное программирование), MVC (Modal View Controller), ".h" и ".m" файлы. Итак... объектно-ориентированное программирование предполагает разделение всего кода на так называемые объекты, внутри которых хранятся данные и обрабатывающие их команды. Объект в Objective-C состоит из двух файлов.h и.m. Файл.h называется заголовком (header) в нем содержится "набросок" объекта - перечисляются все данные и названия блоков команд (методов), содержащихся в объекте. Файл.m называется файлом реализации (implementation) и в нем подробно расписывается все то, что указано в заголовке именно здесь программируется вся логика программы.

MVC (Model View Controller) - это нечто, разделяющее код и интерфейс, который видит пользователь. Model - это данные пользователя и данные, которые вы показываете пользователю. View - это пользовательский интерфейс и код, который обеспечивает связь между View и Model. Концепция MVC может сейчас показаться Вам слишком заумной, однако со временем Вы увидите, что этот подход действительно упрощает жизнь программиста. Эта концепция подразумевает следующий порядок работы: программист отдельно создает шаблон дизайна приложения, где размещает все кнопки, текстовые поля и прочую важную ерунду, и отдельно пишет программ. Потом он показывает XCode какой метод(блок кода) должен вызываться в ответ на то или иное действие пользователя и какое название имеет тот или иной элемент управления в тексте программе.

Разрабатываем дизайн программы для iPhone

Давайте начнем создание нашего приложения с разработки дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard. В результате XCode запустит редактор интерфейса.

В правом нижнем углу Вы видите список объектов (Library), которые можно использовать в своем интерфейсе, в центральной части отображается окно View, которое и представляет макет интерфейса вашей программы. Правое верхнее окно имеет несколько режимов, которые переключаются с помощью расположенных над окном иконок. На рисунке показан режим Atribute Inspector. Здесь можно изменять различные атрибуты объектов, составляющих ваш интерфейс.

Перетащим из окна Library объект Label на наш макет окна. С помощью мышки изменим размер объекта, как показано на экране ниже. В инспекторе отображаются свойства объекта Label. Давайте отцентрируем текст, щелкнув по соответствующей иконке в строке Layout.

Удалим текст в поле Text (там было написано слово Label) и введем там “Some String”.

Аналогичным образом добавьте на макет кнопку (объект Button)

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

Начинаем кодить

Итак, у нас есть два визуальных компонента размещенных на макете. Мы хотим чтобы при нажатии на кнопку менялся текст в строке. Чтобы реализовать эту задумку нам понадобится из кода программы обращаться к стороке (объект Label) и вызывать метод(блок кода) при нажатии на кнопку.

Щелкните по файлу "ViewController.h" в панели слева. Мы собираемся описать IBOutlet. IBOutlet соединяет наш код с визуальным объектом, например с надписью (label) или кнопкой (button). Приведите код в файле ViewController.h к виду

#import @ interface ViewController: UIViewController{ IBOutlet UILabel* label; //присвоим нашей строке имя Label } //это заголовок метода, который будет //вызываться в ответ на нажатие кнопки - (IBAction) buttonClick: (id) sender; @ end

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

Итак, мы сказали, что будем называть строку с текстом label и что в ответ на действие пользователя будет вызываться метод buttonClick. Давайте напишем код этого метода. Переключимся на файл ViewController.m в дереве проектов. После строки@implementation... добавим код

- (IBAction) buttonClick: (id) sender{ label. text= @ ”Hello from Mobilab. ru”; }

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

Давайте разберемся, что мы тут видим. Мы обращаемся к объекту label - строке текста на экране. Поскольку это объект, у него внутри есть разные данные (которые в ООП также называют свойствами объекта) и методы к которым можно обратиться, поставив точку после имени объекта. Свойство text отвечает за содержащийся внутри строки текст..

Мы завершили кодирование, осталось связать label и buttonClick с элементами внутри макета дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard, чтобы переключиться в конструктор интерфейса. Зетем щелкните по иконке “View controller”. Переключитесь на режим connections в инспекторе (последняя иконка). Посмотрите, в инспекторе в области Outlets появилась строка label. Это то название, которое мы указали в файле ViewController.h. Щелкните по кружочку в правой части строки label и перетащите его на строку с текстом Some Text в макете дизайна.

Аналогичную операцию проделайте с кнопкой. Щелкните по кнопке с кружочком в группе “Received Actions”, потом по buttonClick и перетащите ее на кнопку в макете. В результате раскроется контекстное меню, с помощью которого можно выбрать момент вызова метода. Можно, например, вызывать код, когда пользователь нажмет кнопку, можно когда отпустит. Там много вариантов. Выберите "Touch up Inside".

Вот и все! Сохраняйте проект и щелкайте по кнопке "Run" на панели сверху. Если Вы Все сделали правильно, то должен запуститься эмулятор с Вашей программой. Щелкните по кнопке. Текст в строке должен измениться. Вот и все. С первым уроком покончено

Основы программирования
Азы программирования, основные термины и понятия

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

Урок 3. Первая программа

Выбор языка программирования. Подготовка браузера. Программа «Hello, world!».

Урок 4. Переменные

Установка удобного редактора кода. Знакомство с переменными. Простой калькулятор.

Урок 5. Типы данных

Типы данных. Операции с разными типами данных. Преобразование типов данных.

Урок 6. Алгоритмы и блок-схемы

Алгоритмическое мышление. Визуальные блок-схемы.

Урок 7. Оператор ветвления if

Выбор вариантов в программе. Оператор ветвления if. Игра в загадки.

Урок 8. Логические операции

Комплексные условия выбора. Логические И, ИЛИ. Игра «Злые птицы».

Урок 9. Циклы do, while

Циклы do и while. Игра в русскую рулетку.

Урок 10. Цикл for

Цикл for. Финансовый калькулятор.

Урок 11. Массивы

Большие наборы данных и массивы. Игра в рулетку.

Урок 12. Функции

Функции. Подготовка к написанию игры «Black Jack (21)».

Урок 13. Игра «Black Jack». Часть 1

Написание полноценной игры. Основа – раздача карт и подсчет очков.

Урок 14. Игра «Black Jack». Часть 2

Завершение написания игры. Определение результатов и победителя.

Урок 15. Карьера программиста

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

Git. Быстрый старт
Основы работы с Git

Видеокурс дает опыт командной разработки с использованием Git. Учит «с нуля» организовать совместное хранилище кода и эффективно его использовать. Студенты осваивают git-клиенты с графическим и консольным интерфейсом, учатся контролировать выпуск версий программы и «откатываться» к предыдущим версиям. Подробно рассматриваются распространенные ошибки командной разработки: при слиянии веток, создании commit-ов, хранении исполняемых файлов в репозитории.

Урок 1. Назначение и возможности

Узнаем, зачем нужен git и какие возможности он открывает для программистов.

Урок 2. Базовые операции

Создаем хранилище кода, доступное всем участникам разработки по сети. Осваиваем базовые операции: Clone, Commit, Push, Pull.

Урок 3. Откат изменений кода

Учимся откатывать изменения в коде с помощью git. Осваиваем операции Discard, Revert, Reset.

Урок 4. Работа с ветками

Работа с ветками.
Параллельно разрабатываем несколько версий программы. Осваиваем операции Add branch, Checkout, Merge.

Урок 5. Конфликты

Учимся разрешать конфликты при слиянии веток.

Урок 6. Распространенные ошибки. Часть 1

Боязнь создания новых веток. Хранение исполняемых файлов в репозитории.

Урок 7. Распространенные ошибки. Часть 2

Ошибки при работе с ветками. Ошибки при создании commit-ов.

Урок 8. Pull Request. Работа с Open-Source-проектами

Осваиваем Pull Request-ы на примере работы с Open-Source-проектами.

Урок 9. Pull Request. Сдача домашних заданий.

Сдача домашних заданий в GeekBrains с помощью Pull Request.

Урок 10. Консольный git-клиент. Базовые операции

Осваиваем базовые операции в консольном git-клиенте.

Урок 11. Консольный git-клиент. Работа с ветками

Учимся работать с ветками в консольном git-клиенте.

Урок 12. Работа с версиями программы

Учимся выпускать различные версии программного продукта с использованием git.

Урок 13. Итоги

Подводим итоги проделанной работы.

Основы языка Swift. 1 месяц.
Современные технологии программирования под Apple на Swift 4.1 - 4.2, xcode 9 - 10

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

Урок 1. Введение

Вводное занятие. Знакомство с языком. Основные типы данных. Xcode, Playground. Переменные, константы и коллекции данных. Дебаггер.

Урок 2. Синтаксис Swift. Основные операторы

Продолжение изучения синтаксических конструкций языка и основных операторов

Урок 3. Комплексные типы данных

Знакомство с комплексными данными. Структуры. Перечисления. Свойства и методы. Конструктор.

Урок 4. Введение в ООП

Как описывать объекты реального мира и создавать их по описанию. Классы и объекты. Наследование. ARC и введение в управление памятью.

Урок 5. ООП

Описываем требования к классам. Протоколы. Расширения. Полиморфизм. Композиция.

Урок 6. Продвинутое ООП

Техники настоящих гуру. Дженерики. Замыкания. Subscripting. Функции высшего порядка.

Урок 7. Обработка ошибок и исключений

Учимся искать ошибки и предсказывать их появление. Исключения try/catch. Error.

Урок 8. Змейка

Пишем простую игру с использованием SpriteKit

Пользовательский интерфейс iOS-приложений. 1 месяц.
Swift 4.1, XCode 9

Какие основные особенности большинства современных мобильных приложений? Взаимодействие с сервисом. Отображение и изменение данных на внешнем сервере! Не бывает приложений без пользовательского интерфейса. Это лицо вашего проекта. С его помощью можно привлекать и удерживать пользователей. Реализовав связь с сервисом, вы сможете организовать взаимодействие пользователей между собой, либо с вашим бизнесом.

Урок 1. Проектирование интерфейса. Часть I

Разбор основных сетевых возможностей и применение их на практике.

Урок 2. Проектирование интерфейса. Часть II

Добавление экранов. Переходы между экранами. UInavigationController. Segue.

Урок 3. Проектирование интерфейса. Часть III

Отображаем данные в виде таблицы. UITableViewController, UITableViewCell, UICollectionViewController.

Урок 4. Создание кастомных UI-компонентов

Рисование с помощью CoreGraphics. @IBDesignable и @IBInspectable. CALayer: тени, границы, маска, градиент. Трансформация. Обработка пользовательских жестов. UIControl. UIAppearance.

Урок 6. Кастомизация коллекций

Создание кастомных ячеек таблицы, header и footer view. Создание кастомных ячеек коллекции, supplementary views. Работа с UICollectionViewFlowLayout. Создание кастомного collection view layout.

Урок 7. Анимации. Часть I

Простые анимации UIView. Анимации переходов между UIView. Анимации слоя. Пружинные анимации.

Урок 8. Анимации. Часть II

Keyframe-анимации. Группы анимаций. Кривые Безье и их анимирование. 3D-анимации. UIViewPropertyAnimator.

Урок 9. Анимация переходов между экранами

Анимация переходов между UIViewController. Интерактивные переходы между view controllers. Создание собственного segue.

Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL

Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.

Урок 1. Реляционные базы данных

Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.

Урок 2. Установка СУБД

Установка СУБД MySql и графического приложения Mysql Workbench.

Урок 3. Проектирование базы данных, нормальные формы

Проектирование данных в Excel; нормальные формы; первичный ключ.

Урок 4. SQL-команда CREATE

Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.

Урок 5. SQL-команда INSERT

Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT

Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.

Урок 9. Согласованность данных

Понятие согласованности или консистентности данных.

Урок 10. Внешний ключ

Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.

Урок 11. Создание таблиц с отношением “многие ко многим”

Добавление корзины в базу данных интернет-магазина.

Урок 12. Составной первичный ключ

Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.

Урок 13. Объединение данных из нескольких таблиц

Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.

Урок 14. Оператор INNER JOIN

Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.

Урок 15. Операторы LEFT JOIN, RIGHT JOIN

Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.

Урок 16. Оператор UNION

Объединение результатов нескольких SQL-запросов с помощью оператора UNION.

Урок 17. Агрегирующие функции

Агрегирующие функции COUNT, SUM, MIN, MAX.

Урок 18. Оператор GROUP BY

Группировка выбранного набора строк с использованием оператора GROUP BY.

Урок 19. Индексы

Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.

Урок 20. Транзакции

Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.

Клиент-серверные iOS-приложения. 1 месяц.
Swift 4.1, XCode 9

Вы освоите приемы разработки высоконагруженых приложений. Поработаете с файлами и архивами. Научитесь управлять процессами в фоновом режиме, оптимизировать работу приложения по загрузки больших объемов данных. Также вы освоите методы разработки приложений с универсальным интерфейсом. Получите опыт работы с популярным Backend сервисом Firebase от Google. А также поучаствуете в процессе публикации приложения в AppStore.

Урок 1. Применение паттернов «наблюдатель», «одиночка», «делегат»

Изучаем реализацию самых популярных паттернов в iOS. Знакомимся с NotificationCenter.

Урок 2. Работа с сетью

Учимся работать с сетевыми запросами. Анатомия HTTP-запросов. Обзор инструментов и библиотек для работы с сетевыми запросами. Отправка запросов с помощью URLSession.

Урок 3. Mapping json

Преобразуем json-ответ сервера в объекты приложения. Анатомия json-формата. JSONSerialization.

Урок 4. Хранение данных

Обзор инструментов и библиотек для постоянного хранения данных в приложении. UserDefaults, Файлы. CoreData. SQLite, Realm, Keychain.

Урок 5. Консультация с преподавателем

Урок 6. Realm

Детальный обзор Realm. Сохранение, извлечение, удаление, фильтрация данных

Урок 7. Realm Notifications

Отслеживаем изменения в Realm. Автоматическое обновление UI.

Урок 8. Backend – Firebase

Используем внешний сервер для хранения данных приложения. Осваиваем Firebase Framework. Подключаем механизмы «Регистрация» и «Авторизация пользователей».

Урок 10. Консультация с преподавателем

Основы языка C
Закладываем фундамент Ваших знаний

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

Урок 1. Введение. Зачем нужен С и как им пользоваться

Возникновение языка С. Возможности языка. Функции языка. Актуальность языка. Установка компилятора и среды разработки

Урок 2. Базовые понятия. Как всё устроено, и что с этим делать

Шаблон программы. Директива препроцессора #include. Функция main. Функция printf() и форматированный вывод. Переменные и типы данных. Операция & - взятие адреса. Ввод данных. Арифметические операции в языке С (если хватит времени)

Урок 3. Условия: первый шаг к принятию решений. Булева алгебра

Оператор if() и его вариации. Операции сравнения: арифметические сравнения, логические операторы, тернарный оператор. Вложенные условия. Блоки кода и области видимости. Булева алгебра.

Урок 4. Циклы. Отдаём программе рутинные задачи

Понятие цикла. Цикл while(). Цикл do {...} while(). Формат записи цикла do while

Урок 5. Циклы. Как придать уникальности простым вещам

Операторы break, continue, switch и цикл for

Урок 6. Функции. Пишем универсальные фрагменты кода

Понятие функции. Виды функций. Аргументы функции. Прототипы функций. Заголовочные файлы.

Урок 7. Указатели. Ещё один шаг к настоящему низкому уровню

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

Урок 8. Массивы. Собираем подобное к подобному

Директивы препроцессора. Понятие массива. Объявление массива. Обращение к элементу массива. Определение размера массива через директиву компилятору

Урок 9. Массивы. Проверяем насколько хорош генератор псевдослучайных чисел

Идентификатор массива. Выход за пределы массива. Арифметика указателей. Передача массива в функцию

Урок 10. Массивы. Почти безграничные возможности организации данных

Многомерные массивы. Двумерные массивы. Заполнение и вывод двумерного массива. Массивы указателей

Урок 11. Строки. Учимся говорить с пользователем

Понятие строки. Указатель и массив из переменных типа char. Функции puts(), printf(), gets()/
Конкатенация строк (функция strcat()). Сравнение строк strcmp(). Функция копирования строк strcpy(). Обработка символов.

Урок 12. Структуры данных. Уходим от примитивов к объектам, но не далеко

Понятие структуры данных. Ключевое слово struct для описания структуры. Описание структуры “простая дробь”.

Урок 13. Файловая система. Запоминаем результаты и читаем их обратно

Понятие файловой системы. Создание текстового файла. Чтение из текстового файла.

Урок 14. Динамическое выделение памяти

Процесс выделения памяти. Функция malloc(). Оператор sizeof(). Функция calloc() . Функция free(). Функция realloc() .

Алгоритмы и структуры данных. 1 месяц.
Эффективные решения вычислительных задач

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

Урок 1. Простые алгоритмы

Введение в C. Структуры. Алгоритмы.

Урок 3. Поиск в массиве. Простые сортировки

Поиск в одномерном массиве.Интерполяционный поиск. Сортировка массива.

Урок 4. Динамическое программирование. Поиск возвратом

Наибольшая общая подпоследовательность Динамическое программирование. Поиск с возвратом. Задача о восьми ферзях.

Урок 5. Динамические структуры данных

Стек, очередь. Создание стека с использованием массива. Динамические структуры данных.

Урок 6. Деревья

Двоичные деревья поиска. Хеш-функция. MD5. Хеш-таблицы

Урок 7. Графы. Алгоритмы на графах.

Графы, обход графа в ширину и глубину. Волновой алгоритм. “Жадные алгоритмы”.

Урок 8. Сложные сортировки

Сортировка Хоара (Quick sort). Пирамидальная сортировка (Heap sort)
Сортировка слиянием (Merge sort). Сортировка подсчетом (CountingSort). Алгоритм со списком (pigeonhole sorting). Блочная сортировка.

Курс, разработанный совместно с школой EnglishDom, поможет освоить ключевые англоязычные темы, актуальные для начинающих IT-специалистов. Максимум практики и фокус на IT-лексику. На 10 уроках разбирается составление CV, технических заданий и деловых писем, собеседования и переговоры, международное общение при продвижении своего проекта. В живых диалогах на английском студенты закрепят фразы, которые пригодятся в работе разработчикам и тестировщикам, маркетологам и дизайнерам.

Урок 1. IT resume sample

Составляем резюме на английском.

Как стать программистом. 13 уроков.
Пошаговая инструкция по поиску работы

Карьера в сфере программирования - это увлекательное путешествие в мир современных технологий. У каждого разработчика своя история и свой опыт. Однако существует базовый алгоритм, который поможет правильно сделать первые шаги и приведёт к вашей цели. Мы подготовили 13 видео-уроков, в которых ответили на самые актуальные вопросы о карьере программиста в компаниях и на рынке фриланса. Часто думаете о трудоустройстве и чувствуете, что готовы начать зарабатывать? Тогда этот видео-курс для вас.

Урок 1. Профессия “Программист”

Особенности профессии; часто задаваемые вопросы; востребованность на рынке труда.

Урок 2. Профориентация

Стану ли я успешным программистом? Факторы успеха.

Урок 3. Начинаем составлять резюме

Самое важное - первое впечатление; как назвать должность.

Урок 4. Выбор языка программирования: веб-разработка

Обзор языков для разработки сайтов: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; правильный выбор.

Урок 5. Мобильная разработка. Универсальные языки программирования

Обзор языков: Java, Objective-C, Swift; C#, C++, Python: правильный выбор.

Урок 6. Правила эффективного резюме

Список технологий; портфолио; дипломы и сертификаты; личностные качества. Взгляд технического специалиста и HR.

Урок 7. Поиск работы: что, где, когда

Работа мечты, психологические аспекты; техника запроса.

Урок 8. Собеседование и испытательный срок

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

Урок 9. Фриланс: первые шаги

Обзор площадок для фриланса; особенности регистрации; оформление аккаунта; как выделяться среди большинства исполнителей.

Урок 10. Фриланс: начало работы и поиск заказов

Стратегия поиска заказов; приоритет заказов: что брать в работу; ведение переговоров; задания и подводные камни ТЗ; методы обращения к клиенту; написание ответов и привлечение внимания клиентов; правильные вопросы.

Урок 11. Фриланс: выполнение заказа и оплата

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

Урок 12. Специальности в сфере IT

Как проходит разработка в крупных компаниях? Кто такие аналитики, дизайнеры, тестировщики, архитекторы, projectmanager-ы, team-lead-ы и пр.

Урок 13. Карьерная лестница в сфере IT

Как выглядит карьерная лестница в сфере IT? В каких специальностях проще начинать свой путь? Какие есть перспективы развития?

Стажировка в Geekbrains. 2 месяца.
В формате вебинаров

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

Урок 1. Начало проекта

Начало проекта; получение задачи от виртуального заказчика; работа менеджера по продажам, аналитика, проектировщика UI, архитектора.

Урок 2. Подготовка к разработке

Утверждение ТЗ, интерфейса и архитектуры; распределение задач; работа с Bug-tracker и GIT; правила хорошего кода.

Урок 3. Принципы KISS, YAGNI, SOLID

Анализ проделанной работы; разбор ошибок; постановка новых задач; принципы KISS, YAGNI, SOLID.

Урок 4. Работа с веб-сервисами

Анализ проделанной работы; постановка новых задач; работа с веб-сервисами; шаблоны проектирования: фабрика, репозиторий.

Урок 5. Тестирование

Анализ проделанной работы; постановка новых задач; тестирование; работа тестировщика; подготовка резюме.

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

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

Инструментарий iOS-разработчика

Приступая к освоению, для начала устанавливаем весь необходимый инструментарий: Xcode – созданную компанией Apple программу для создания приложений под OS X, iOS и комплект iOS SDK.

Xcode – удивительная штука, предоставляющая все необходимое в разработке приложений предназначенных для iPhone и iPad. Пользовательский интерфейс Xcode – это единое рабочее окно (workplace window ), в котором и происходит вся магия: от написания кода, его проверки и отладки багов до разработки интерфейса программного обеспечения. Упомянутый выше набор iOS SDK, призванный расширить комплект инструментов Xcode, не требует дополнительной загрузки и устанавливается автоматически с Xcode.

Таким образом, как вы уже поняли, вся работа начинается с установки последней версии Xcode, найти которую можно в Mac App Store .

Вторым шагов станет регистрация новоиспеченного iOS-программиста в Программе Разработчиков iOS . Регистрация необходима, если вы серьезно настроены на развитие и продвижение вашего детища в AppStore. В противном случае можно не париться и ограничиться Simulator’ом, входящим в комплекте iOS SDK.

О дальнейших шагах в освоении Xcode можно узнать здесь:

Язык Objective-C

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


Вот небольшая подборка различных ресурсов (книг и сайтов), способных оказать помощь в освоении Objective-C: Для тех, кто знает английский язык:

Фреймворки

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

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

Желающим ближе познакомиться с темой сюда:

Шаблоны

Необходимым подспорьем при создании стандартных приложений для iOS являются шаблоны проектов. Однако это не значит, что шаблоны решают все проблемы: после ознакомления с базовыми iOS Design Patterns , разработчику так или иначе придется "обтесать" свое творение, в соответствии с существующими потребностями.

Привлекательная оболочка

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

Подробнее о проектировании интерфейсов:

И еще пара моментов

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

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

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

Присоединяйтесь к нам во

Swift - это надёжный и интуитивно понятный язык программирования от Apple, при помощи которого можно создавать приложения для iOS, Mac, Apple TV и Apple Watch. Он предоставляет разработчикам небывалую свободу творчества. Благодаря этому простому и удобному языку с открытым кодом вам достаточно просто интересной идеи, чтобы создать нечто невероятное.

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

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

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

Превосходные приложения,
разработанные на языке Swift.

Всё больше разработчиков встраивают код Swift в свои приложения. А некоторые даже создают в Swift совершенно новые приложения.

Duolingo Khan
Academy Clear Sky Guide

Procreate Kickstarter Eventbrite Hipmunk

Производительность выше. Приложения лучше.

Приложения Swift превосходят ожидания. Например, обычный алгоритм поиска выполняется в Swift гораздо быстрее.

До 2,6 раза быстрее, чем в Objective-C

До 8,4 раза быстрее, чем в Python 2.7

В графе с использованием алгоритма поиска в глубину найдено 10 000 целых чисел*

Язык Swift добавлен
в учебную программу.

Не только разработчики оценили потенциал языка Swift. Университеты и другие учебные заведения преподают Swift на занятиях по программированию и публикуют бесплатные курсы в iTunes U. А значит, даже новички смогут легко перейти от основ кодирования к программированию на профессиональном уровне.

Университеты, включившие язык Swift в учебную программу

  • Калифорнийский университет в Санта-Круз
  • Колледж Футхилл
  • Мельбурнский королевский технологический университет
  • Мюнхенский технический университет
  • Общественный колледж Лосон
  • Общественный колледж Манхэттена
  • Общественный колледж Месы
  • Общественный колледж Хьюстона
  • Общественный колледж Централ Пьемонт
  • Плимутский университет
  • Политехнический университет штата Калифорния
  • Стэнфордский университет
  • Технический колледж северо-западного Канзаса
  • Технологический институт Монтеррея
  • Университет Аберистуита
  • Университет Фулл Сейл
  • Школа Ingésup
  • Южный методистский университет

Swift повсюду.
И теперь открыт для всех.

Swift бесплатно доступен для использования разработчиками, преподавателями и студентами по лицензии на распространение ПО с открытым исходным кодом Apache 2.0. Мы предоставляем двоичные файлы для OS X и Linux, которые позволяют компилировать код для iOS, OS X, watchOS, tvOS и Linux. А чтобы ускорить развитие и превращение Swift в ещё более мощный язык, мы создали новое сообщество, где пользователи могут напрямую вносить свой вклад в исходный код Swift.

Познакомьтесь со Swift.

Главная книга

Загрузите учебник Язык программирования Swift из Apple Books Store бесплатно. Узнайте, как благодаря Swift процесс программирования становится более удобным, гибким и увлекательным.

Xcode

Xcode - это приложение для Mac, предназначенное для разработки других приложений для Mac и iOS. В Xcode есть все инструменты, необходимые для создания потрясающих приложений. Его можно загрузить бесплатно из Mac App Store.

Веб-сайт для разработчиков

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