Когато пишеш приложение за самия себе си

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

Навярно мнозина от читателите на Калдейта са настройвали домашната мрежа, писали са скриптове за автоматизация на интелигентния дом, администрирали са домашен сървър и т.н. Всички тези неща на практика са „семейни задължения“ за един разработчик. Примерно както изнасянето на боклука за мъжа в семейството.

А какво ще кажете за написването на мобилно приложение за вашето семейство? Това е едно съвсем ново ниво.

Софтуер за себе си и за семейството

Когато пишеш приложение за самия себе си
require 'glimmer-dsl-libui'
include Glimmer
window('hello world').show

Въпреки че Робиян Слоун (Robian Sloan) не е професионален програмист, а успешен писател на художествена литература, познанията му са достатъчни, за да напише прост видеочат за iOS. В първия ден след пускането на BoopSnoop през януари 2020 г. той е изтеглен от четирима души от различни часови зони (майка му, баща му, сестра му и той самият). Всички те са доволни потребители и до днес.

Приложението е създадено по модела на Taptalk: когато стартирате приложението, то показва видеопотока от камерата и четири икони за потребители. На които можете да изпратите снимка или видео (мама, татко, сестра, група за всички) с едно "докосване", откъдето идва и името.
Интерфейсът на Taptalk

Щом махнете пръста си, съобщението се изпраща и програмата се затваря, без редактиране и без излишни действия. Дори историята на кореспонденцията не се съхранява, всичко е възможно най-просто.

За съжаление, услугата Tapstack беше спряна на 15-ти ноември 2019 г. (разработчиците на безплатното приложение без реклами никога не са си представяли, че то ще стане толкова популярно). Това беше причината Робин да създаде своя собствена алтернатива.

Той откри фреймуърка SwiftyCam, с помощта на която направи всичко за една седмица (плюс малък S3 инстанс за съхранение на снимките и видеоклиповете). Плюс няколко ламбда функции за обработка на новите съобщения). Приложението BoopSnoop изглежда още по-просто, то дори няма собствен интерфейс, видеото винаги е в режим на цял екран, има само бутон за запис и число в горния десен ъгъл (броят на непрегледаните съобщения):

BoopSnoop

С инструменти като Shoes! или Glimmer DSL (в KDPW) писането на графичен потребителски интерфейс е въпрос на минути за разработчик, който не е запознат с графичния дизайн. Но в този случай няма специален графичен интерфейс. Това е т.нар. ситуационен софтуер. Тоествисокоспециализиран софтуер с минимален брой потребители. Той е създаден за конкретна задача и за конкретна група хора.

Робин разпространява софтуера сред своите роднини като безплатна бета версия чрез Apple TestFlight. Теоретично той би могъл да бъде пуснат за свободно ползване от всички. Но това създава много проблеми. Ами ако започнат да го използват и други хора, стотици или хиляди? Те ще започнат да се оплакват от грешките, да изпращат фишеци-искове и да изискват отстраняването на някои недостатъци или архитектурни грешки. Как да реагираш на тях? Не искам да превръщам хобито си в работа. Освен това моите роднини са доволни от всичко, а то е написано на първо място за тях. За две години Робин е добавил само една функция към приложението, която е била поискана от неговата майка.

Има много повече изисквания за приложение „за хората“, отколкото за приложение „просто за себе си“. Като минимум, там трябва да приложите система за удостоверяване (потребителско име и парола), докато тук тя не е задължителна. Трябва да измислите интерфейс за управление на списъка с контакти и т.н. Всичко става много по-сложно. Така че, когато някой ви попита „Готин софтуер, как мога да го изтегля?“, отговорът е еднозначен: „Не можеш!“.

Когато пишеш приложение за самия себе си

Понякога разработката „за себе си“ постепенно прераства в нещо повече. Това се е случило с Михаил Лапушкин, който в продължение на девет години (от 2015 г.) пише нативен текстов редактор за Mac. Преди известно време той видял iA Writer и пожелал да създаде нещо също толкова просто и елегантно.

Резултатът от неговия стремеж към абсолютен минимализъм беше Paper – доста успешно комерсиално приложение, което можете да инсталирате от Mac App Store. След това се появи и версия за iOS.

Лапушкин е избрал модел на монетизиране с пробни версии, при който платените функции могат да се изпробват за определен период от време. След това се предлага Pro версия (In-App Purchase):

Когато пишеш приложение за самия себе си

Историята на развитието на Paper е доста увлекателна. Вижда се, че този човек много обича работата си и е погълнат от нея. Вероятно такъв увлечен програмист помощта от колегите би могла само да му попречи.

Соловото разработване

Много програмисти след края на корпоративната си кариера споделят опита си от успешната самостоятелна разработка. Възможно е това не винаги да носи пари, но обикновено прави човека по-щастлив.

Възможно е да изградите успешен бизнес на базата на optensource. Тоест на свой личен проект, който първоначално е бил разглеждан като хоби. Андрис Рейнман участва в опенсорсни проекти от около 15 години и преди известно време написа EmailEngine Email API client. Това е един страхотен имейл клиент за приложения, а не за хора. Предназначен е за лесно интегриране на електронна поща във всяко приложение или услуга. Направено е по такъв начин, че на клиентите да не им се налага да се занимават с конфигурация на SMTP и IMAP. Всичко работи както се казва „с изваждането от кутията“.

Когато пишеш приложение за самия себе си
EmailEngine Email API

Програмата с отворен код първоначално се предлагаше под свободния лиценз AGPL за инсталиране на собствен сървър, а лицензът MIT струваше 250 евро на година.

След това авторът премина изцяло към комерсиален лиценз. И продаде седем лиценза през първия месец. След това той постепенно започна да увеличава цената на 495, 695, 795, 895 евро. Интересно е, че броят на потребителите не намалява. Сегашната лицензионна такса е 6100 евро годишно, така че десетина или две дузини клиенти са достатъчни на естонеца, за да се издържа.

Андрис казва, че е бил романтичен глупак, когато е писал код с отворен код. И дори е отказвал даренията от редица големи комерсиални потребители, за да запази независимостта си и „да не се продава“. С напредването на възрастта погледът му към живота малко се променил. Особено когато чуждият стартъп Nodemailer, базиран на неговия софтуер с отворен код, бил продаден за 500 млн. долара.

Оказва се, че парите не са чак такова зло, както си мислят младите ентусиасти. И само преминаването към комерсиален лиценз (макар и с отворени кодови бази) е осигурило стабилен доход.

Ето една подобна история. Програмистката Ели Хъкстейбъл (Ellie Huxtable) също напуска работата си в името на своя проект с отворен код. В продължение на няколко години тя пише Atuin. Това е помощна програма за синхронизиране на историята на конзолните команди, търсене и архивиране (поддържат се Bash, ZSH, Fish и NuShell). Историята на всички команди се съхранява в една обща база данни, като се запазва контекстът на изпълнение.

Когато пишеш приложение за самия себе си

Оказва се, че това е изключително полезен софтуер за повишаване на производителността. Хиляди хора споделят това мнение, ако се съди по броя на звездичките в GitHub.

Когато пишеш приложение за самия себе си

Тъй като програмата се оказа търсена, проектът постепенно се превърна в нещо повече от хоби. Авторът подобри инфраструктурата (за дарения от спонсори в GitHub), говори на компютърни конференции и приема PR-и от десетки спомоществователи

Когато пишеш приложение за самия себе си
Ръстът на броя на потребителите
Когато пишеш приложение за самия себе си

В крайна сметка тя създава търговска компания за продукта, напуска старата си работа в инфраструктурната компания PostHog и се посвещава изцяло на личния си бизнес. Софтуерът все още е с отворен код и може да бъде хостван на собствен сървър, но премиум функциите в облака (както и търговските лицензи за предприятията) се предлагат срещу заплащане.

Започването на собствен бизнес е и начин да се избегне професионалното прегаряне, което често сполетява поддръжниците на софтуера с отворен код.

Удоволствие, а не работа

Като цяло основният въпрос е каква роля играе програмирането в живота – работа ли е или хоби? В края на краищата, ако го разглеждате основно като източник на препитание, става много трудно да се наслаждавате на процеса. Това прилича на факта, че е почти невъзможно да бъдете искрени приятели с шефа си. Или пък с човек, който може да ви унищожи с едно щракване на пръстите си. Просто човешкият мозък е така устроен, че няма да може да се наслаждава в условията на пристрастяване, а жизнено важните зависимости се възприемат като източник на потенциална заплаха.

Ето защо за вътрешна хармония е полезно професионалният разработчик да има някакви хоби проекти ей така – за душата. Например, както antirez (Салваторе Санфилипо, автор на СУБД Redis и, между другото, също писател фантаст) наскоро написа минимална концепция на чат сървъра smallchat. Само за себе си и за няколко приятели. Той се опита да направи възможно най-малкия чат сървър на C, както в конкурсите за минималистичен код, в стил IRC. И да, успя да го направи само на 200 реда код, ако не броим интервалите и коментарите.

Други самостоятелни разработчици също показват примери за такива хоби проекти, които понякога са направени само за тях самите. А понякога с демонстрационна цел за всички. Някои от тях публикуват тези проекти като обществено достояние, а други – не. Antirez предупреждава за исканията за изтегляне веднага:

„Имайте предвид, че повечето PR-и за добавяне на функции ще бъдат отхвърлени. Смисълът на това хранилище е неговото подобряване стъпка по стъпка чрез видеоклипове. Ще правим рефакторинг по време на сесиите в реално време (или ще обясняваме във видеото необходимостта от рефакторинг). Ще въвеждаме още библиотеки, за да подобрим вътрешната работа на програмата (linenoise, rax и т.н.). Така че, ако искате да подобрите някоя функция като упражнение, заповядайте! Това е една чудесна идея. Но аз няма да добавям нови функции, тъй като смисълът на програмата е да се развива постепенно във видео сесиите, при това винаги на живо“.

Хоби проектите ни напомнят, че програмирането е не само пари, но и много интересно занимание. С удоволствие бихме го правили безплатно, ако не ни се плащаше за това.

Да пишеш приложения за себе си е като да готвиш вкъщи. Не е задължително да го правите, но хората го правят за удоволствие. Понякога искаш да излезеш извън рамките на обикновената консумация и да създадеш нещо със собствените си ръце. Като цяло е много по-лесно и по-приятно да пишете приложения единствено за себе си, отколкото за клиент или работодател.

А ако този хоби проект стане комерсиален и донесе някакви пари, толкова по-добре.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

Нови ревюта

Подобни новини