test adv
3,

С Днём свободного ПО! Почему оно важно и как мир застопорился бы без него

Рассмотрим реальную роль свободного ПО в развитии современных технологий на примере мобильных приложений

Каждую третью субботу сентября, а значит и сегодня, отмечается день свободного ПО, хотя об этом мало кто знает. При словах о свободном программном обеспечении на ум приходит разве что Linux, Android без сервисов Google и какие-то малоизвестные проекты добровольцев, уступающие платным аналогам. В этой статье хочу поделиться тем, какую роль на самом деле играет такое ПО, и почему мы сталкиваемся с ним каждый день. Для примера буду опираться на несколько мобильных приложений, над которыми я работаю в последние годы.

Процесс разработки

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

С Днём свободного ПО! Почему оно важно и как мир застопорился бы без него

Но что из себя представляют эти процессы? Неужели инженеры бессонными ночами рисуют и программируют каждую кнопку, а для взаимодействия с камерой или GPS-датчиком устройства стучатся напрямую в процессор, адаптируя всё под каждое отдельное устройство?

Фактически, iOS- и Android-приложения на самом деле состоят из набора компонентов, которые создавались инженерами в Apple и Google для стабильной работы всего ПО в системе. Для разработки под Android существует специальный набор инструкций, именуемый SDK, он обновляется с каждой версией системы и доступен для загрузки бесплатно. Именно поэтому любой желающий может писать и даже распространять Android-приложения без затрат, но это лишь вершина айсберга.

С Днём свободного ПО! Почему оно важно и как мир застопорился бы без него
Компоненты Material Design, из них Google предлагает строить приложения и сайты

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

Википедия для инженеров

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

С Днём свободного ПО! Почему оно важно и как мир застопорился бы без него
Пример проекта на GitHub

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

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

Оно повсюду!

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

Firebase — это целый комплекс сервисов, купленный Google, который с трудом назовёшь просто библиотекой, но всё же. Если нужно быстро внедрить в приложение авторизацию по SMS или почте, а также отслеживать возникающие ошибки — всего за час можно всё это настроить в Firebase и интегрировать на сайт или в приложение.

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

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

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

TensorFlow — даёт возможность легко создать и натренировать нейросеть, например, для распознавания картинок. Создана Google, но некоторые сборки поддерживаются исключительно общественностью.

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

Последнее изменение:
 
21soroka
21soroka, 19 сентября 2020 - 10:04   (...)
Этот топик написал читатель нашего портала — такой же пользователь, как и вы. Пожалуйста, оцените его работу нажатием кнопки «Плюс» или «Минус» (под текстом)
Ответить
21soroka
21soroka, 19 сентября 2020 - 10:06   (...)
Я взял на себя смелость поменять заглавную картинку, поскольку изначальная была плохого качества и низкого разрешения
Ответить
toddnach
toddnach , 19 сентября 2020 - 11:22   (...)
А где логотип трешбокса? Не порядок!
Ответить
a97k5
a97k5, 19 сентября 2020 - 14:05   (...)
Этот комментарий написал администратор нашего портала — такой же пользователь, как и вы. Пожалуйста, оцените его работу нажатием кнопки «Плюс» или «Минус» (над текстом)
Ответить
moris
moris , 19 сентября 2020 - 18:37   (...)
Этот комментарий написал читатель нашего портала — такой же пользователь, как и вы.
Пожалуйста, оцените его работу нажатием кнопки «Плюс» или «Минус» (над текстом)
Ответить
hacker502
hacker502 29, 19 сентября 2020 - 19:34   (...)
Оценили. Где вознаграждение?)
Ответить
moris
moris , 19 сентября 2020 - 23:18   (...)
держи плюсик, заслужил :D
Ответить
21soroka
21soroka, 19 сентября 2020 - 10:06   (...)
Спасибо за очередную интересную статью, которая делает закрытый для далеких от программирования людей IT-мир чуточку более открытым ✨
Ответить
dolgenkov200500
dolgenkov200500, 3 октября 2020 - 20:00   (...)
С ДНЕМ ХРУСТЯЩЕГО ПЕРЕЛОМА!
Ответить

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием