Статьи

Следующий язык с полным стеком? Серверный Swift с Perfect

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

Swift 2.2 был открыт более месяца назад 3 декабря 2015 года под лицензией Apache 2.0 . В настоящее время трудно найти точный список проектов, интерпретирующих и компилирующих Swift, в отличие от написанного на Swift, но просмотр репозитория проекта GitHub показывает уровень интереса, активности и вклада в проект в столь короткие сроки.

Одним из главных достижений JavaScript стал выпуск node.js , обеспечивающий общий язык в стеке приложений. Может ли Swift на стороне сервера сделать то же самое для языка Apple?

Представляем Perfect

Название « Perfect » от PerfectlySoft Inc, агентства по разработке, специализирующегося на инструментах для разработчиков Swift, выпустило первую серверную реализацию Swift.

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

Зачем создавать бэкэнд-проект Swift?

Мы считаем Swift красивым языком, но для обращения к экосистеме развития предприятия ему нужна мощная серверная структура.

В каком состоянии находится ваш бэкэнд-проект Swift?

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

Будет ли проект всегда оставаться открытым исходным кодом или станет коммерческим проектом?

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

Что вы надеетесь достичь?

Мы собираемся захватить мир разработки на стороне сервера.

Кто-нибудь еще использует проект с какими-либо приложениями? Каким было представление?

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

Ожидаете ли вы более четкое разделение между мобильным устройством и сервером в качестве проблемы для объединения передней и задней части? В отличие от node.js / JavaScript?

Пример узла / Javascript похож на Swift / Perfect. Тем не менее, node / Javascript — это языки высокого уровня, тогда как Swift / Perfect изначально скомпилированы. Swift / Perfect будет иметь преимущества в скорости и надежности по сравнению с node / Javascript, поскольку Swift является языком со строгой и статической типизацией, что делает его гораздо более подходящим для построения корпоративных систем поверх JavaScript. Поскольку базы кода растут вокруг мобильной и серверной частей, объединение Swift / Perfect должно уменьшить расстояние и диссонанс между разработкой внешнего интерфейса и бэкенда, наблюдаемой в других парных тупых стеках (таких как ObjC / Java или Java / PHP). Существование Perfect делает Swift все более мощным и полезным, что означает меньше кода на проект и более масштабируемые результаты.

Что дальше и что тебе нужно прямо сейчас?

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

Используя Perfect

Mac OS X

Клонируйте хранилище Swift на свой компьютер:

git clone https://github.com/PerfectlySoft/Perfect.git 

Внутри папки проекта откройте examples.xcworkspace , в ней содержится несколько примеров проектов, которые вы можете исследовать.

Самый простой пример для начала — приложение «Tap Tracker», выберите серверный компонент в XCode и нажмите кнопку «Выполнить»:

Запустить Tap Server

И запустите соответствующее приложение:

Запустить приложение Tap

Узнайте больше о том, как приложение «Tap Tracker» работает, в документации Perfect . Быстрое сканирование покажет, насколько хорошо проблемы разделены между двумя компонентами приложения. Серверное приложение, обрабатывающее транзакции базы данных с помощью файла шаблона усов, управляющего выводом JSON, переданным в приложение iOS. Это позволяет мобильному приложению просто обрабатывать получение местоположения и отправлять его на конечную точку сервера Swift. Следующим шагом будет добавление представления, которое запрашивает конечную точку о выполненных касаниях и отображает их.

Linux

Это хорошее начало, но реально, сколько работает серверных служб в Mac OS X? Поддержка Swift в Linux — настоящее изменение игры, и Perfect поддерживает это. Сначала убедитесь, что у вас установлен компилятор Linux Swift , а затем установите зависимости, требуемые PerfectLib:

 sudo apt-get install libssl-dev libevent-dev libsqlite3-dev libicu-dev libcurl4-openssl-dev uuid-dev git 

Клонировать и собрать PerfectLib:

 git clone https://github.com/PerfectlySoft/Perfect.git cd Perfect/PerfectLib make sudo make install 

Создайте идеальный сервер:

 cd ../PerfectServer make 

Затем мы создадим общий объект для сервера Perfect из проекта, который мы хотим запустить, поэтому остановимся на примере tap:

 cd ../Examples/Tap\ Tracker/ make 

И скопируйте полученный результат в новую папку PerfectLibraries в каталоге сервера:

 cd ../../PerfectServer mkdir PerfectLibraries cp ../Examples/Tap\ Tracker/TapTrackerServer.so ./PerfectLibraries 

Наконец запустите сервер:

 ./perfectserverhttp 

В ViewController.swift приложения Tap Tracker в END_POINT_HOST значение END_POINT_HOST на IP-адрес вашего сервера Linux и запустите его. Все должно быть так же, как при запуске Mac Server, но, конечно, мы запускаем Swift на двух разных машинах!

Что еще поддерживает Perfect?

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

Поддержка Apache

Если вы не хотите использовать встроенный http-сервер, тогда Perfect предоставляет модуль Apache через FastCGI , узнайте больше здесь .

Соединения с общими компонентами сервера

серверные приложения редко существуют изолированно, и у Perfect есть коннекторы для MySQL , PostgreSQL и MongoDB, а также и другие.

JSON Object Marshaling

Связь между сервером и клиентом происходит в стандартном JSON. Это означает, что нет новых «стандартов» для изучения. Это также означает, что ваш сервер Swift не должен просто передавать данные в приложение на основе Swift. кто-нибудь на стороне сервера Swift подает приложение для Android?

Чего не хватает?

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

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

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

Что вы думаете о серверном Swift? Великий Обещание или ажиотаж?