можно ли программировать на айфоне

Кодим на iPad и iPhone: редакторы кода, компиляторы, shell-клиенты и сетевые утилиты для iOS

можно ли программировать на айфоне. ios editor h. можно ли программировать на айфоне фото. можно ли программировать на айфоне-ios editor h. картинка можно ли программировать на айфоне. картинка ios editor h. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

Содержание статьи

Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

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

Редакторы кода

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

Textastic

Textastic, вероятно, самый популярный и многофункциональный редактор. Впрочем, разработчики знают цену своему творению — в App Store программу можно найти за 10 долларов, что по меркам данного магазина немало. Конечно, при наличии jailbreak на аппарате можно скачать редактор в одном из многочисленных хранилищ пиратского софта, но отсутствие эксплоитов для последних версий iOS значительно усложняет бесплатное приобретение утилиты.

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

Xakep #207. Дистанционное банковское ограбление

В качестве бонуса можно выделить гибкие настройки оформления. Есть возможность выбрать шрифт и его размер, тему и цвет интерфейса, включить автокоррекцию, защитить программу паролем или отрегулировать межстрочные интервалы и отступы. Другая фишка — поддержка 3D Touch в новейших моделях iPhone, многозадачности в планшетах и оптимизации под тринадцатидюймовый iPad Pro.

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

Koder

Один из ближайших конкурентов Textastic — менее дорогая, но практически не уступающая по функциональности утилита Koder. Здесь можно добавить кастомные клавиши на верхнюю панель клавиатуры, подключиться к SSH-серверу. Настройки оформления, передача данных по FTP, защита файлов паролем и поддержка не меньшего, чем в Textastic, количества языков программирования — все это также присутствует в данном приложении. Еще есть клавиша в верхней панели для удобного перемещения по коду, облачная синхронизация, гибкий поисковый движок с возможностью замены, настройка прав доступа на серверах, превью HTML-файла в окне браузера и поддержка iTunes File Sharing. Из удобных особенностей — поддержка нескольких вкладок при редактировании файлов. Так что данный редактор отнюдь не хуже Textastic, мало того, он обладает многими небольшими, но оттого не менее приятными преимуществами. И это при значительно меньшей цене.

можно ли программировать на айфоне. 1461741026 f5cc koder. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741026 f5cc koder. картинка можно ли программировать на айфоне. картинка 1461741026 f5cc koder. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Интерфейс программы Koder

Существует еще множество других решений — клиент онлайн-сервиса codeanywhere, iEditor, Code Master и прочие. Однако они серьезно уступают по функциональности первым двум программам, являющимся, безусловно, лидерами данного сегмента утилит, потому рассматривать их отдельно не будем.

Интерпретаторы и компиляторы

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

Программистам, использующим C и C++, вероятно, пригодится лаконичная IDE CppCode. Здесь имеется небольшой менеджер файлов без поддержки вложенности, собственно редактор с подсветкой синтаксиса, простенький отладчик и компилятор. В верхней панели расположены шорткаты таким же образом, как это реализовано в Textastic, а еще здесь присутствует кнопка для быстрой навигации по коду. Аскетичные параметры программы расположены в нативном приложении «Настройки». Важная особенность — есть немало примеров уже готового кода, что будет полезно для начинающих программистов. Жаль только, русский в данной утилите не поддерживается.

можно ли программировать на айфоне. 1461741041 ca22 cppcode. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741041 ca22 cppcode. картинка можно ли программировать на айфоне. картинка 1461741041 ca22 cppcode. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Настройки CppCode расположены в нативном приложении

У CppCode есть и платная Premium-версия (сама же утилита распространяется бесплатно). Однако и стандартных возможностей будет вполне достаточно для быстрого программирования. В общем, IDE достаточно простая, но стабильная и быстрая, а это важно для подобных утилит.

Свое решение есть и для Python. Точнее, интерпретаторов для него великое множество, они выпущены отдельно для каждой версии языка. Простая на вид программа содержит немало функций. В левом окне можно писать сам скрипт или вводить терминальные команды. В правом окне будет отображаться результат исполнения скрипта. Клавиатура, как и в других редакторах, оснащена верхней панелью, правда не такой функциональной, зато немного более понятной по сравнению с тем же CppCode. Среди преимуществ серии прочих интерпретаторов — большой набор документации, которую можно загружать непосредственно в саму программу и использовать в режиме офлайн. Также имеется набор скриптов.

Для iOS есть и интерпретатор JavaScript (а точнее, интерфейс к встроенному движку). Называется он JavaScript Anywhere. Организация рабочего пространства привычная: слева панель документов, справа — панель для редактирования кода. Собственно рабочая часть дисплея имеет три вкладки — HTML, CSS и JS. Предусмотрен менеджер загрузки изображений и интеграция с Dropbox. Однако панель спецсимволов отсутствует.

Последним рассмотрим компилятор для CoffeeScript под названием CoffeeScript At Once. В целом он мало чем отличается от утилиты для JS. Практически тот же интерфейс, набор настроек и опций. К трем верхним кнопкам в рабочей области добавлены еще две — EXT и RUN. В последней отображается уже скомпилированный код. Присутствует панель спецсимволов, чуть больше набор настроек отображения, есть интеграция с GitHub. Вот, собственно, и все отличия из тех, которые пользователь сможет заметить «с первого взгляда».

Справочники

можно ли программировать на айфоне. 1461741060 ec80 dash. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741060 ec80 dash. картинка можно ли программировать на айфоне. картинка 1461741060 ec80 dash. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Введение в справочник по AppleScript

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

Git, GitHub и MySQL

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

Программа позволяет найти требуемый репозиторий GitHub или BitBucket, клонировать его на устройство и изменить его файлы. Само изменение кода осуществляется через сторонние редакторы (те же Textastic или Koder). Данная возможность реализована благодаря появившейся в iOS 9 технологии Document Picker, позволяющей редактировать один и тот же файл при помощи различных программ от сторонних разработчиков. В самой программе тоже есть редактор, который вызывается через меню Action при свайпе вправо по объекту.

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

Для iPhone и iPad есть и клиент GitHub — самого популярного сервиса для коллективной разработки проектов. Бесплатный iOctocat поддерживает некоторые функции ресурса. В основном, конечно, это просмотрщик и программа для общения разработчиков. При помощи данной программы (в бесплатной версии, есть еще Basic и Pro) нельзя создать репозиторий или форк существующего проекта. Отсутствуют также функции скачивания всего проекта и многие другие. Вероятно, они есть в платной версии, равно как и доступ к приватным репозиториям, за открытие которого разработчики данной программы взимают дополнительную плату. Еще в Pro-версии доступны Push-уведомления для более удобной переписки.

можно ли программировать на айфоне. 1461741077 e2c7 ioctocat. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741077 e2c7 ioctocat. картинка можно ли программировать на айфоне. картинка 1461741077 e2c7 ioctocat. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Pro- и Basic-версии iOctocat

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

Мобильные устройства Apple обладают возможностью работать и с базами данных MySQL. Для этого предназначены несколько программ, среди них QueryDB и Navicat. Navicat — продвинутое приложение для работы с БД. Его стоимость — 16 долларов, что совсем немало. Однако и возможности данной программы очень велики:

Бесплатная утилита QueryDB — намного более простое решение. Это инструмент для создания и редактирования БД. Программа имеет платную версию с поддержкой SSH. Для того чтобы убрать рекламу, потребуется заплатить 3 доллара.

SSH и FTP-клиенты

Перейдем к поиску лучших SSH-клиентов. Одно из наиболее известных решений — Prompt. Среди возможностей программы — неограниченное количество «закладок» с данными серверов, структурирование подключений при помощи папок, сохранение паролей, кастомизация интерфейса программы (темная и светлая темы, изменение размера шрифта). Верхнюю панель клавиатуры также можно изменять. Данные серверов синхронизируются между всеми iOS-устройствами с использованием функции Panic Sync. Сохранение наиболее используемых команд (Clips) и защита при помощи Touch ID — приятные особенности утилиты.

можно ли программировать на айфоне. 1461741096 ff40 prompt. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741096 ff40 prompt. картинка можно ли программировать на айфоне. картинка 1461741096 ff40 prompt. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Интерфейс программы Prompt

Также есть и программа для работы с FTP/SFTP-серверами под названием Transmit. Это версия популярной Mac-утилиты для iOS-устройств. Возможности приложения таковы:

Стоимость программы — 8 долларов.

Утилиты для анализа сети

В задачи администратора входит и проведение диагностики сети. Для этого в iOS также есть свои программы. Во-первых, это приложение iNetTools (есть бесплатная версия и платная за 5 долларов). Бесплатно в ней доступны инструменты Ping, Trace, DNS Lookup, Port Scan. В платной версии есть также функции Whois, Server Monitor, LAN Scan. В списке My Server List отображаются все серверы, к которым ранее производилось подключение. Для начинающих пользователей предусмотрена небольшая справочная информация.

можно ли программировать на айфоне. 1461741113 9d56 inettools. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1461741113 9d56 inettools. картинка можно ли программировать на айфоне. картинка 1461741113 9d56 inettools. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Стартовый экран iNetTools

Для сканирования сетей предназначена утилита IP Network Scanner. Она позволяет находить устройства в Сети, отображает Mac-адреса и IP. Для удобства поиска устройствам можно присваивать иконки и произвольные имена. Можно открыть аппараты по найденному адресу в браузере или в любой программе, поддерживающей эту функцию. Также возможна тонкая настройка программы, добавление устройств в список вручную, выбор стиля сканирования (отображать всю или только подтвержденную несколько раз информацию).

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

Заключение

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

Источник

Программирование под iPhone. С чего начать?

можно ли программировать на айфоне. sdk. можно ли программировать на айфоне фото. можно ли программировать на айфоне-sdk. картинка можно ли программировать на айфоне. картинка sdk. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

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

Цели урока

1.С чего начать программирование для iPhone.
2.Джентльменский набор разработчика.
3.Домашнее задание.

Введение

С чего начать? Вопрос скорее риторический. Конечно, если вы, дорогой читатель, юрист или, скажем, строитель – вам будет очень сложно начать и скорее всего не стоит этого делать всерьёз, потому, как мне кажется, лучше делать хорошо одно дело, чем несколько и плохо. Однако, не будем исключать и тот момент, что вам хочется программировать для души, что это ваше новое хобби. Тогда в добрый час. Однако, если вы, мой дорогой друг, уже имеете опыт разработки приложений, неважно на каком языке – Си, Паскале, Ассемблере, Делфи или наконец Бейсике или даже Лого (в моем учебнике по информатике в начале 90х был и такой), то вам непременно надо попробовать себя на ниве приложений для айфона.

Вот мы и подошли к ответу на главный вопрос, с чего начать. Начните с основ, для этого далеко ходить не надо, я приведу вам всего несколько ссылок, которые вас в итоге «до Киева» доведут:

1.Для людей вообще незнакомых с языком Си – начните с этого

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

3.Если вы знаете основы Си, да и ООП не вызывает у вас затруднений, вам все же рекомендуется почитать отличие Objective-C применяемого в MacOS (и айфоне соответственно) от традиционных С и С++. Весьма неплохо это описано тут.

4.Также ответы на многие вопросы вы найдете на нашем форуме в разделе разработчиков под iPhone.

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

Джентльменский набор программиста для iPhone, как и несессер путешественника, довольно небогат и, в принципе, на начальном этапе не требует чего-то сверх естественного и дорогого. Вот все, что нам потребуется для старта:

а) Макбук или Макмини самой простой комплектации (цена от 20 т.р.). Предложения по продаже новых и б/у компьютеров от Аппл можно также найти на нашем форуме в коммерческом разделе на форуме.

б) Операционная система MacOS Leopard версии 10.5.5.

У многих после пункта А могут сразу опуститься руки. Я вам скажу честно, до знакомства с айфоном я вообще никак и никогда не пересекался с Апплом, да и свою первую программу под айфон я написал вообще не имея макбука. Я заядлый виндусятник, начавший свою сознательную жизнь с Windows 3.1 и доживший до Windows Vista, я был покорен удобством MacOS и ни сколько не жалею о таком приобретении, хотя до сих пор львиную долю времени провожу за компьютерами с ОС от Билла Гейтса.

Для тех, кого и эти слова не убедили, все равно есть выход. С момента перехода компьютеров от Apple на платформу с процессором Intel – появилась возможность (естественно не без танцев и бубнов) устанавливать MacOS на обычный РС компьютер, сознаюсь – я и сам так делал. В миру такая ОС известна под разными названиями Kaliway, Hackint0sh и т.п. На всех файлообменниках вы без труда найдете нужный образ и качнув его, сможете поставить на свой компьютер Макось. И даже при желании запускать потом ее в окне ВМвари (VMWare). Как это все это сделать я описывать не буду, не к лицу пропагандировать методы обхода лицензии на Маки, но возьму на себя труд предупредить вас от некоторых ошибок, избежав которые вы, возможно, не потеряете интерес к программированию еще на начальном этапе подготовки инструментария:

1. При установке ВСЕГДА используйте отдельный винчестер подключенный как мастер на нулевую шину IDE или SATA.
2. Не пытайтесь установить Леопарда из под VMWare – проверял много раз – это невозможно, хотя в сети есть люди которые утверждают что делали это.

3. После того как установите Макось можете попробовать запустить ее из под Виндов в ВМВаре, если хватит ресурсов. Также, отдельная проблема, это драйвера. Сетевая скорее всего схватится у вас сама, видео будет 800х600 – тупо VGA. А вот как быть с вашей 8800GTX картой, вайфай адаптером и голубым зубом, то тут как повезет (чаще не везет).

И так, инструментарий описан, переходим к домашнему заданию.

Домашнее задание у нас будет простое, но очень важное, не выполнив его, все остальные уроки станут для вас бесполезным HTML текстом, а мой труд не будет стоить и выеденного яйца. И так, дорогие программисты айфонщики, пока я пишу Урок №2, вы должны:

Б) Обновить его до версии 10.5.5.

В) Скачать и установить SDK от Apple. Накачать кучу примеров из сети, попробовать их все откомпилировать. В общем приступить к изучению методом тыка (наиболее распространенный в нашей стране метод, поражающий своей эффективностью).

Источник

Pythonista. Пишем на Python для iOS

Планшет iPad от компании Apple — всем известное и не нуждающееся в рекламе устройство. Но очень часто хочется использовать всю мощь этого устройства не только для игр и развлечения, а для серьёзной работы. Например для написания программ. Несмотря на 4-x летнею историю развития этого гаджета и наличие разных моделей удобных сред для программирования под iOS существует крайне мало. (Оговорюсь сразу, во избежании дальнейшей путаницы: программирование на iOS — значит написание кода и запуск программы на iPad или iPhone, а программирование для iOS — написание приложения, которое может быть выложено в App Store.)

можно ли программировать на айфоне. aceb4a81186547acb6185855f9726cc2. можно ли программировать на айфоне фото. можно ли программировать на айфоне-aceb4a81186547acb6185855f9726cc2. картинка можно ли программировать на айфоне. картинка aceb4a81186547acb6185855f9726cc2. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

Недавно я наткнулся на великолепную программку Pythonista, которая позволяет писать на iOS для iOS.

Краткое описание

Pythonista brings the Zen of Python to your iPad or iPhone.

И это действительно так. Программа является лучшим компилятором для Python.

На мой взгляд, лучшим это приложение делают 3 вещи:

Обзор

Среда ориентирована на Python 2.7. Но есть и некоторые фишки из 3-й ветки. Например, сработает и такой код:

Кроме стандартных библиотек, есть несколько библиотек для непосредственной разработки для iOS. Остановлюсь на одной. Она называется ui и отвечает за GUI.

Рассмотрим несколько примеров работы с этой библиотекой. Очень интересно, что в Pythonista графический интерфейс можно задавать программно, а можно нативно:

Это первый пример по работе с библиотекой ui. Разберём программу построчно:

1) Сначала создаём объект View;
2) Потом задаём имя этого объекта, оно будет отображаться в его заголовке;
3) Устанавливаем цвет фона объекта — белый, можно задавать словом, а можно при помощи RGB;
4) Создаём кнопку с надписью «Tap me!»;
5) Размещаем кнопку на объекте;
6) Задаём функцию, которая будет выполняться при нажатии на кнопку. (В данном случае изменится надпись на кнопке);
7) Уточняем, что «button» является наследником «view»;
8) Наконец, вызываем метод view.present() для отображения объекта на экране iOS устройства.

Вот что будет происходить на айпаде:

можно ли программировать на айфоне. image loader. можно ли программировать на айфоне фото. можно ли программировать на айфоне-image loader. картинка можно ли программировать на айфоне. картинка image loader. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.можно ли программировать на айфоне. image loader. можно ли программировать на айфоне фото. можно ли программировать на айфоне-image loader. картинка можно ли программировать на айфоне. картинка image loader. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

Но тоже самое можно сделать и нативно:

1) Создадим скрипт с UI:

можно ли программировать на айфоне. 7ca1211481a042819570f908b53768ce. можно ли программировать на айфоне фото. можно ли программировать на айфоне-7ca1211481a042819570f908b53768ce. картинка можно ли программировать на айфоне. картинка 7ca1211481a042819570f908b53768ce. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

2) Открыв UI, нажмем на кнопку «+» и выберем button:

можно ли программировать на айфоне. 8fa1b9a711ac401995827513e63692fe. можно ли программировать на айфоне фото. можно ли программировать на айфоне-8fa1b9a711ac401995827513e63692fe. картинка можно ли программировать на айфоне. картинка 8fa1b9a711ac401995827513e63692fe. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

3) Растянем кнопку и разместим её по центру экрана:

можно ли программировать на айфоне. a33431eaa4004ab1a0b206b20fbaf846. можно ли программировать на айфоне фото. можно ли программировать на айфоне-a33431eaa4004ab1a0b206b20fbaf846. картинка можно ли программировать на айфоне. картинка a33431eaa4004ab1a0b206b20fbaf846. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

4) Откроем атрибуты кнопки и зададим функцию, срабатывающую при её нажатии:

можно ли программировать на айфоне. 359277926bb94e829a5d9e7a69ce9e7d. можно ли программировать на айфоне фото. можно ли программировать на айфоне-359277926bb94e829a5d9e7a69ce9e7d. картинка можно ли программировать на айфоне. картинка 359277926bb94e829a5d9e7a69ce9e7d. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.можно ли программировать на айфоне. 9da45525ba3947a199f4f38563fcfd0b. можно ли программировать на айфоне фото. можно ли программировать на айфоне-9da45525ba3947a199f4f38563fcfd0b. картинка можно ли программировать на айфоне. картинка 9da45525ba3947a199f4f38563fcfd0b. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

4) Перейдём в редактор скрипта и напишем функцию:

Скажем, к какому UI привязать данный скрипт:

можно ли программировать на айфоне. 2a50147f1974481397117b51520c1bde. можно ли программировать на айфоне фото. можно ли программировать на айфоне-2a50147f1974481397117b51520c1bde. картинка можно ли программировать на айфоне. картинка 2a50147f1974481397117b51520c1bde. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.
5) Запустим программу:

можно ли программировать на айфоне. 1f4795c9e4fd44a1af3fa7174f432ddb. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1f4795c9e4fd44a1af3fa7174f432ddb. картинка можно ли программировать на айфоне. картинка 1f4795c9e4fd44a1af3fa7174f432ddb. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.можно ли программировать на айфоне. abd47c025e6b415db261707b53f811af. можно ли программировать на айфоне фото. можно ли программировать на айфоне-abd47c025e6b415db261707b53f811af. картинка можно ли программировать на айфоне. картинка abd47c025e6b415db261707b53f811af. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

В завершение

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

UPD: Читайте мою статью посвящённую этой программе и автоматизации iOS в февральском номере журнала ][акер

Источник

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

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

В сегменте мобильных технологий, без сомнения, лидирует Apple со своим смартфоном iPhone. На прошедшей в сентябре презентации компания из Купертино продемонстрировала уже 7-ю версию мобильного девайса. Вместе с ней Apple представила новую версию мобильной операционной системы iOS 10. Теперь это самая значимая операционка в мире, как и ее предшественницы. Из этого следует, что изучение разработки для iOS — самое выгодное вложение времени и средств.

«Яблочная» экосистема

Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows. На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.

Необходимые знания

Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.

На более высоком уровне iOS-разработчику надо глубоко знать операционную систему macOS и собственно саму iOS. Также тебе обязательно надо освоить «яблочный» язык программирования. Знание Delphi, C++, C# или VB.NET тебе не сильно поможет. У Apple своя экосистема со своими языками: Objective-C и Swift. Конечно, знание C++ еще никому не навредило, программы и вставки на нем встречаются везде, даже у Apple. Но самый используемый по определению Objective-C, просто потому, что появился гораздо раньше (в середине восьмидесятых годов прошлого века), тогда как Swift лишь два года назад (в 2014-м). Apple возлагает большие надежды на новый язык и много инвестирует в него. Для поддержки старого софта используется Objective-C, а новый пишется на Swift. Поэтому тебе неплохо знать оба.

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

Инструменты для разработки

Как ты знаешь, главный инструмент разработчика под macOS и вместе с ней iOS — среда программирования Xcode. Она включает средства для создания приложений для Mac, iPhone, iPad, Apple TV, Apple Watch. Все платформы Apple. Xcode содержит средство построения интерфейса (Interface Builder), редактор кода, поддерживающего все современные средства работы с кодом. Кроме того, не выходя из Xcode, можно протестировать приложение; если оно разрабатывается для внешнего устройства, то его можно запустить в эмуляторе.

В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).

13 сентября вышла новая, горячо ожидаемая версия среды разработки 8.0. Стабильные версии можно бесплатно скачать в App Store. Альфы и беты распространяются по подписке разработчика. Восьмая версия вобрала в себя: новую версию языка Swift 3, средство изучения Swift Playground для iPad, новую версию Interface Builder, которая стала быстрее работать и позволяет просматривать макет приложения на разных платформах, без необходимости развертывать на симуляторе само приложение.

Если у тебя старая версия Xcode, то рекомендуем обновить, поскольку мы будем использовать последнюю версию. Скачать ее можно из App Store:

можно ли программировать на айфоне. 1475055410 5a72 mac app store. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1475055410 5a72 mac app store. картинка можно ли программировать на айфоне. картинка 1475055410 5a72 mac app store. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Xcode 8 в Mac App Store

Реверс малвари

На Xcode 8 можно разрабатывать приложения для macOS Sierra, iOS 10, watchOS 3 и tvOS 10. Имеются все SDK. Новые версии операционок стали последовательно появляться аккурат после презентации Apple, состоявшейся в начале сентября.

Язык Objective-C

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

Как в C++, в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C++ является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных. Подобно Smalltalk, в Objective-C объектам посылаются сообщения. Это исключительная возможность динамических языков, так как тип объектов проверяется во время исполнения программы, а не во время компиляции.

Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.

Разработка приложения для iOS

В качестве семпла мы разработаем весьма простое приложение. Не будем отступать от священной традиции, поприветствуем мир. Однако с учетом того, что у нас графическое приложение, мы немного разнообразим его: добавим кнопку, нажимая которую будем отображать или скрывать надпись «Hello, World».

можно ли программировать на айфоне. 1475055445 6a0d templates. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1475055445 6a0d templates. картинка можно ли программировать на айфоне. картинка 1475055445 6a0d templates. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Мастер создания приложений

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

Типы приложений

Создание первого проекта

В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab. В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих. Снимем флажки Include Unit Tests и Include UI Tests, нам никакие тесты не нужны. Next. Выберем папку для сохранения проекта. Теперь жми кнопку Create.

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

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства. В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.

Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента. Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.

Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.

Создаем связь между графическими элементами и кодом

В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.

Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C. Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.

Появится окно создания Outlet’а.

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.

Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться. С другой стороны, когда действует слабая ссылка (weak), объект может самоуничтожиться. Итак, выбираем тип ссылки weak и жмем кнопку Connect. В итоге в код добавится такая строка:

Убеждаемся, что Outlet — это свойство.

Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:

В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.

Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end. Появится окно для создания события, подобное окну создания аутлета. Видишь разницу: в заголовочном файле создается ссылка на объект, в файле реализации — метод.

можно ли программировать на айфоне. 1475055500 0864 event. можно ли программировать на айфоне фото. можно ли программировать на айфоне-1475055500 0864 event. картинка можно ли программировать на айфоне. картинка 1475055500 0864 event. Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как. Создание обработчика события

Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца. ) над кнопкой, то есть заключительная стадия нажатия кнопки. Это то, что нам нужно. В списке Arguments оставим значение по умолчанию: Sender — это объект, отправивший данный сигнал, в нашем случае им всегда будет кнопка. Жмем кнопку Connect. В итоге будет добавлен следующий код:

Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.

Между командными скобками напишем выполняемый при нажатии кнопки код:

В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).

Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController. Раньше это было условное правило, используемое для различия объектов, объявленных в качестве членов класса, и локальных объектов. А теперь это строгое правило, реализованное в компиляторе языка.

Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.

После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.

Мы сделали очень простое приложение для понимания сути разработки под iOS. Более подробные сведения о создании приложений для iOS на языке Objective-C ты можешь узнать из курса наших друзей из GeekBrains «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.

Язык Swift

В 2014 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple. Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C. В мире имеются миллиарды строк кода и сотни тысяч унаследованных программ, написанные на Objective-C, поэтому от его поддержки точно не будут отказываться.

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

Алгоритм на языке Swift работает в 2,6 раза быстрее, чем такой же алгоритм на Objective-C, и в 8,4 раза быстрее, чем на Python. Использование Swift делает процесс разработки программ более гибким и удобным.

Благодаря своему экспоненциальному развитию, 3 декабря 2015 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux. Все дополнительные инструменты для работы с языком, включая отладчик, стандартную библиотеку, менеджер пакет, тоже свободные и открытые.

За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.

App Store

Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции. Чтобы начать это делать, надо зарегистрироваться как разработчик и купить лицензию для продажи своих приложений. Это плата за предоставляемый сервис и развитие магазина App Store.

Итоги

Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий. Познакомились с основами Objective-C. Кроме того, мы обратили внимание на перспективный язык Swift, используемый для разработки мощных и безопасных приложений для «яблочной» экосистемы.

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

Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности. Затем углубленный курс по разработке профессиональных приложений для Android. После этого вектор изучения перейдет в сторону Apple-систем: два подробных курса по языку Objective-C и полезный курс по Swift.

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

Специальный проект с компанией GeekBrains

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *