Я продолжу повторять (по крайней мере, в течение следующих 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 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? Великий Обещание или ажиотаж?