Як ми народжували застосунок we: на Flutter цілих 9 місяців і що з цього вийшло
Привіт спільното! Сподіваюсь, всі в безпеці і ваші станції достатньо заряджені. Маю для вас розповідь про досвід розробки цікавого застосунку на Flutter в рамках проєкту WE.UA
Завантажити та ознайомитись з додатками Ви можете з офіційних джерел під Вашу ОС:
Для Android: play.google.com/...ore/apps/details?id=we.ua
Для iOS (iPhone): apps.apple.com/...платформа-we/id6636553491
Раніше я вже розповідав про наш стартап та базовий функціонал online-платформи we.ua. Безмежно дякую за ваші коментарі, поради та слова підтримки у відповідному топіку: dou.ua/forums/topic/42370 . Буду вдячний, якщо в шановних читачів DOU виникнуть нові ідеї чи запитання щодо нашого проєкту.
Одразу зазначу, що термін розробки в 9 місяців є доволі розтягнутим в часі, оскільки для безпосереднього створення коду використовувалось в середньому по

Власне, чому саме Flutter?
Flutter від Google пропонує кросплатформенність (cross-platform), гнучкість, відкритість та доступність коду. Мова програмування Dart, на якій створюється застосунок, максимально нагадує Java, .Net, Kotlin, Swift або навіть JavaScript. Dart є легкою в освоєнні і більш-менш зручною у використанні. Не найкраща мова в світі, але для своєї задачі — цілком топчик.
На даному етапі розробки ми зосередились на створенні додатків для Android та iOS, маючи web-версію проєкту з власним API та WebSockets для обміну повідомленнями. Ми не стали здійснювати розробку web-версії силами Flutter, оскільки переконані, що наш досвід з PHP, JS, Python дасть кращий та очікуваніший результат за максимально короткий проміжок часу. Тим паче, що наша імплементація web-версії Платформи WE.UA показала себе чудово. Ви можете самостійно переконатись в цьому, створивши свій Профіль на сайті we.ua.
Що ми хотіли отримати від мобільних додатків?

Ми хотіли створити зручний додаток для читання каналів, профілів та обміну повідомленнями зі збереженням даних в локальній памʼяті пристрою для максимальної автономності. WebView-застосунок з обʼєктивних причин нас не влаштовував.
Базовий функціонал включає:
- форми реєстрації/авторизації/відновлення доступу;
- налаштування облікового запису (Профілю);
- секція Профілю з фото, обкладинкою, описом, додатковою інформацією;
- Стрічкою дописів в Профілі користувача (далеко не всі користувачі є творцями контенту і не створюють дописи; більшість реєструється, щоб підписатись на цікаві канали та читати, чи дивитись відео з них);
- форма створення/редагування допису в Профілі;
- функціонал «Друзі» для запрошення нових учасників, подачі та обробки заявок в спеціальний список довірених користувачів, з якими буде здійснюватись подальша комунікація (на платформі WE.UA Вам не може написати, чи зателефонувати хто-завгодно, лише довірені особи зі списку «Друзі»);
- пошук користувачів за іменем, нікнеймом (we:nickname), Email, чи мобільним;
- підписування на оновлення Користувачів (типово, Ви підписуєтесь на оновлення Профілю, подаючи заявку в Друзі, але можете просто підписатись на оновлення і слідкувати за новими дописами без потреби в подальшій комунікації);
- коментарі та вподобайки до дописів Профілю;
- секція публічного Каналу (це своєрідний профіль на чітко задану тематику, на який підписуються інші користувачі для отримання оновлень з нього за принципом «один пише, а багато читають»);
- форма створення/редагування публічного каналу (в одного користувача може бути декілька каналів, оскільки кожна творча особистість може бути різнобічною та різноплановою);
- стрічка дописів, коментарі та вподобайки в Каналі, як і в Профілі користувача;
- форма пошуку каналів за назвою, або короткою адресою (we:@channel);
- загальний overview всіх оновлень з каналів та від користувачів з можливістю перемикання між типами джерел (чітке розділення за потреби між новинами з каналів та оновленнями друзів);
- чати миттєвих повідомлень з E2EE, фото відео, вподобайками та локальними сповіщеннями, щоб не пропустити важливе вхідне повідомлення (вийшов повноцінний месенджер);
- секція сповіщень про останні дії щодо облікового запису від інших користувачів, або системи (вхідні заявки в Друзі, реакції на коментарі та дописи, тощо);
Ми доклали зусиль, щоб в нашому застосунку було що знайти і почитати чи подивитись актуальну інформацію про події в Україні та світі. Для цього є розділ «Всі новини» в навігації. Нудно не має бути точно!
Що з цього вийшло
Презентуємо вам мобільний застосунок WE.UA новий спосіб комунікації у Вашому смартфоні!
Для Android: play.google.com/...ore/apps/details?id=we.ua
Для iOS (iPhone): apps.apple.com/...платформа-we/id6636553491
Мобільний застосунок WE.UA містить три складові: Профілі, Канали, Миттєві повідомлення. Кожна з цих частин доповнює іншу і є невідʼємною частиною online-платформи WE.UA.
Профілі та Канали відносяться до теми Публічної інформації (крім авторизаційних користувацьких даних), а чати Миттєвих повідомлень — до Приватної інформації. Публічні дані є загальнодоступним і мають містити лише достовірну та перевірену інформацію, за яку користувач Платформи несе повну публічну відповідальність. Приватні особисті повідомлення захищені сучасними алгоритмами перехресного шифрування одразу «з коробки». Цей захист не можна вимкнути, чи обійти при передачі даних між вузлами.
Профілі користувачів
Для взаємодії з профілями користувачів у нашому застосунку діє наступний функціонал:
- форми реєстрації, авторизації та відновлення (доступ в застосунок без авторизації не можливий);
- створення Профілю користувача при реєстрації (вказуються Імʼя та необхідні авторизаційні дані);
- персоніфікація Профілів не лише за іменем, а й нікнеймом (вкажіть в online-бесіді we:ваш-нікнейм, щоб Вас могли легко знайти на Платформі у web-версії, чи в застосунку);
- більше можливостей для Вашого самовираження: аватар, обкладинка, додатковий опис, посилання на інші соцмережі;
- стрічка публічних дописів (пости) в Профілі з фото і відео та зовнішніми посиланнями;
- форма для створення/редагування дописів у Профілі;
- коментарі та вподобайки до постів користувачів;
- можливість поширення допису з Профілю в своєму профілі (репост), або в будь-якому іншому застосунку;
- розділ Налаштувань з можливістю зміни авторизаційних даних, паролю та повного видалення Профілю;
- форма пошуку користувачів за іменем, коротким нікнеймом, Email, чи мобільним;
- функціонал «Друзі»: додавання в друзі зареєстрованого користувача, запрошення друзів за Email чи мобільним, список підтверджених друзів, вхідних та вихідних заявок в друзі, сповіщення про нові заявки в Друзі;
- функціонал «Підписок» на оновлення у Профілях дозволяє слідкувати лише за новинами обраних друзів і дозволить не пропустити важливі події в їх публічних постах;
- можливість поскаржитись на Профіль користувача;
Як бачите, функціонал Профілю в застосунку повторює функціонал вебверсії Профілю користувача. Всі профілі мають бути публічними. Користувачі мають використовувати реальні імена і не видавати себе за інших відомих осіб. Короткі нікнейми дозволять встановлювати звʼязки з користувачами більш зручно та оперативно.

Публічні канали
Частина наших користувачів є дуже талановитими та багатогранними особистостями. Їх талант проявляється у творчості, підприємливості, фаховості, чи бажанні служити людям. В кожному разі їм слід ще більше самовиражатись та розповідати про їх особисту діяльність, чи діяльність їх організації широкій аудиторії читачів.
Для такого поширення публічної інформації за принципом «один пише, а багато читають» в online-світі існують канали. Платформа WE.UA — не виключення. Наші зареєстровані користувачі можуть підписуватись на будь-які публічні канали як через web-сайт, так і через застосунок. В розділі останніх оновлень будуть доступні короткі сповіщення з фото (тизери) в хронологічному порядку (найновіші — вгорі списку). Кожен користувач може перейти до каналу та бачити повний потік публічних повідомлень про важливі події, чи новини.
Безперечно, створювати і наповнювати канали вручну — це тривалий і складний процес. Ми розуміємо і поважаємо вітчизняних творців контенту. Тому пропонуємо імпортувати контент з їх каналів у YouTube, Telegram, чи з RSS-фідів власних сайтів автоматично. Канали WE.UA — це не замінник наявних та дуже популярних способів доставки інформації (TG, WhatsApp, Signal, тощо), а доповнення, яке може існувати паралельно і слугуватиме для розширення своєї аудиторії підписників на Online Платформі WE.UA.
Всі імпортовані канали з YouTube та Telegram проходять ретельну перевірку в ручному режимі. Ми не допускаємо для публічного висвітлення на нашій Платформі неперевірену, провокативну, шкідливу, чи ворожу інформацію з так званих «анонімних каналів». Ми не допускаємо існування каналів про-російських посіпак, їх агентів впливу, чи інших осіб з анти-українською риторикою. Від публічних каналів має бути користь перш за все для України, її виживання, зміцнення та відбудови. Ми всебічно підтримуємо про-українські та демократичні ініціативи, спрямовані на посилення демократії, верховенства права та свободи слова.
Деяким користувачам, які створюють публічні канали на платформі WE.UA, буде запропоновано укласти прямі договори про надання інформаційних послуг з метою посилення відповідальності за їх контент перед власниками Платформи, суспільством та Державою.
Принагідно, запрошуємо вітчизняний бізнес до сталої співпраці та пропонуємо вигідні нішеві маркетингові рішення через співпрацю з Платформою, нашим застосунком та Авторами контенту.
Функціонал публічних каналів у застосунку WE.UA:
- форма створення та редагування Каналу;
- профіль Каналу з назвою, описом, унікальною адресою (легко передавати та знаходити we:@ваш-канал), лого, обкладинкою, посиланнями на інші соцмережі;
- забезпечення унікальності з авторським лого та нетривіальною обкладинкою Каналу;
- стрічка всіх дописів Каналу з можливістю підписатись/відписатись/поскаржитись;
- форма для ручного створення/редагування дописів Каналу;
- коментарі та вподобайки до постів Каналу;
- репости у свій профіль, або в будь-який інший застосунок;
- форма пошуку Каналів за їх назвою, чи короткою адресою;
- функціонал «Підписок» на оновлення Каналу;
- можливість поскаржитись на Канал;
- комунікація з підписниками від імені Каналу (в наступних релізах).
Як бачите, функціонал Каналів не дуже відрізняється від функціоналу Профілів, за винятком частин про комунікацію та Друзів. Все тому, що і Канали, і Профілі покликані презентувати світові публічну інформацію. Для того, щоб користувачі застосунку могли легко відрізнити Канали від Профілів (не те що в Telegram) ми вказали маленькими надписами «Канал/Користувач» у стрічці оновлень та в каналах, встановили квадратну форму для лого каналів а круглу — лише для Профілів користувачів, використали @ в адресі каналів (we:@ваш-канал) і показали ці короткі адреси безпосередньо в самих каналах.

Миттєві повідомлення
Застосунок нашої Платформи має влаштований месенджер з перехресним шифруванням «з коробки», яке неможливо вимкнути чи скомпрометувати в найближчому майбутньому. Наш месенджер не претендує на звання найзахищенішого в світі і ми не гарантуємо Вам, що ваша конфіденційність не буде порушена в інтересах безпеки України, для забезпечення її захисту, суверенітету та територіальної цілісності на момент дії надзвичайного правового військового стану.
Не використовуйте Платформу, застосунок чи месенджер Платформи для поширення анти-українських закликів, виправдання російської військової агресії, поширення порнографії, торгівлі людьми, чи будь-чим забороненим! Наш застосунок та чати миттєвих повідомлень не забезпечують 100% анонімності (як і все, що використовує мережу Internet та відкриті канали звʼязку). Для псевдо-анонімності і зручності для спілкування терористів є російські застосунки. Ми забороняємо використовувати наш застосунок та месенджер миттєвих повідомлень в ньому з територій терористичних та тоталітарних держав, держав-спонсорів тероризму та їхніх посіпак, що не засуджують військову агресію РФ проти України.
Функціонал чатів миттєвих повідомлень:
- створення нового чату з користувачем зі списку Друзів (ваш запит в Друзі має бути підтвердженим);
- передача тексту та емоджі в повідомленнях;
- передача фото та відео в повідомленнях;
- передача невеликих файли в повідомленнях (в наступних релізах);
- зручні вподобайки до кожного повідомлення в чаті;
- групові чати (будуть опубліковані після припинення російсько-української війни, тимчасово вимкнуті з міркувань безпеки);
- чати спілкування зі списку Друзів, в розділі «Миттєві повідомлення», або з профілю Друга;
- чатботи Каналів (в наступних релізах).
Як бачите, ми потурбувались, щоб ви не отримували навʼязливі повідомлення від незнайомців. Створювати повідомлення до вас в застосунку WE.UA можуть лише Друзі, яких ви підтвердили, або бізнес-канали на які ви підписались (діють обмеження щодо частоти сповіщень від каналу).
Наше API дозволяє надсилати повідомлення користувачам застосунку WE.UA за тарифом 10 коп/повідомлення до 255 символів. Відправники повинні мати Отримувача в Друзях, або здійснювати надсилання одиничного (транзакційного) повідомлення від імені Каналу, на який підписаний Отримувач. Даний функціонал забезпечить легким та доступним комунікаційним каналом не лише пересічних користувачів, а й вітчизняний бізнес.

Переваги застосунку WE.UA
Окрім того, що наш застосунок на 100% український, він також має ряд інших переваг:
- влаштоване E2E-шифрування в кожному чаті типово, «з коробки»;
- ініціювати комунікацію з користувачем можна тільки після підтвердження заявки в Друзі;
- зручне та очевидне розділення оновлень з каналів, оновлень від Користувачів та чатів з користувачами;
- застосунки не використовують доступ до Контактів телефону;
- застосунки не використовують доступ до геолокації та не передають розташування;
- застосунки не фіксують і не передають IP-адреси користувачів у відкритому вигляді, або вигляді придатному для декодування;
- в застосунках не розкриваються такі важливі контактні дані як Email та номер мобільного (не показуються в профілі, чи в чатах);
- пошук користувачів за коротким нікнеймом виду we:username, за Email, чи мобільним;
- публічний нікнейм не бере участі в авторизації, чи відновленні доступу;
- 2 теми застосунків: світла та темна;
- 2 мови додатків: українська та англійська;
- без русні в інтерфейсі та сподіваємось, що без русні в користувачах (вичистимо їх разом!).
- модерація здійснюється українською командою;
- мінімальна кількість реклами в загальних розділах;
- власники каналів самостійно приймають рішення про показ контекстної реклами та отримують 100% прибутку від неї;
- можливість відкривати Профілі користувачів та Канали з влаштованим сканером QR-кодів (перетворюйте відвідувачів на підписників свого каналу).
Чого немає в застосунку WE.UA
- російської мови в інтерфейсі;
- русні в засновниках, в ЦА, в користувачах;
- руснявих ботів;
- про-російської реклами і анти-українського крінжу;
- продажі тютюну, алкоголю, наркотиків, чи інших заборонених товарів;
- сумнівних крипто-афер, крипто-бірж, незаконне виведення крипти та ін.;
- «анонімних каналів», як у Telegram;
- каналів про анти-вакцинацію, пласку Землю, чи анти-мобілізаційні заходи;
- порнографії та оголеного тіла (блюримо, що можемо; закликаємо скаржитись на неприйнятний контент);
- «розумних алгоритмів» для просування нерелевантного контенту, штибу «Марс рекомендує», чи «Вам таке сподобається»;
- високогуманних ефемерних «стандартів спільноти» і заборони називати кацапів терористами, військовими злочинцями, свино-собаками та іншими синонімами;
- ностальгії за тюрмою народів СРСР чи духом епохи;
- виправдання російської військової агресії проти України, чи інших держав.
Якщо ви шукаєте в нашому застосунку щось з переліченого, він точно не для вас і краще повертайтесь в російський Telegram.
Відповіді на очевидні запитання
Q: Хто є власником?
A: На даний момент проєктом WE.UA, застосунком та відповідними ТМ одноосібно володіє ФОП Байда Мирослав Володимирович. Детально про структуру власності та відкриття ТОВ буде описано в розділі Інфо we.ua/info.
Q: Де знаходяться сервери?
A: Україна (Київ), Польща (Варшава).
Q: Чи можна видалити обліковий запис WE.UA ?
A: Так, кожен користувач може видалити свій обліковий запис повністю в розділі налаштувань. Для цього слід ввести поточний пароль і цим підтвердити санкціонований доступ до облікового запису.
Q: Які саме алгоритми шифрування використовуються в E2EE миттєвих повідомлень?
A: Використовується AES-шифрування з PBKDF2 ключами, що суттєво сповільнює можливість перебору. Детальніше про PBKDF2: uk.wikipedia.org/wiki/PBKDF2.
Q: Як ви боретесь з руснею в своєму проєкті?
A: Ми максимально унеможливлюємо реєстрацію та використання online-Платформи з IP-адрес РФ, РБ, Ірану та Китаю. Ми реагуємо на скарги щодо користувачів («агентура Кремля, про-російські посіпаки», тощо) та контенту протягом кількох годин та блокуємо підозрілі облікові записи. Застосунок WE.UA не доступний для встановлення в Google Play в РФ, РБ, Ірані, Китаї та ще кількох країнах. Для підозрілих облікових записів ми пропонуємо пройти додаткову перевірку з використанням Дія.Підпис, або ЕЦП від українського банку (зберігаємо лише ПІБ та Email, для успішної валідації має бути 100% співпадіння по цим 2 параметрам, інакше — автоматичний бан).
Далі буде...
В наступних релізах застосунку буде втілено ще багато чого цікавого та корисного для українських користувачів та бізнесу. А саме:
- Обмін файлами на основі peer-to-peer передачі даних без збереження на сервері.
- Аудіо- та Відео- дзвінки з E2E шифруванням на основі peer-to-peer потокової передачі даних.
- Короткі голосові повідомлення (якість буде недостатня для використання як біометричні голосові дані, але задовільна для прослуховування).
- Стікери у Миттєвих повідомленнях.
- Нові типи дописів: Оголошення, Опитування, Товар чи Послуга, Запис на прийом, тощо.
- Можливість завантаження власних відео (до
60-120 сек) в Дописах. - Можливість комунікації з підписниками від імені Каналу прямо з зстосунку.
Поділіться інформацією про застосунок
Буду вдячний за поширення інформації про наш застосунок будь-яким зручним для вас способом.
Ще раз посилання на застосунок для Android: play.google.com/...ore/apps/details?id=we.ua
та для iOS: apps.apple.com/...платформа-we/id6636553491
Всім мирного неба та всього найкращого!
15 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів«Якщо ти не платиш за товар, то товаром є ти»
Реєстрація на WE.UA є відкритою та безкоштовною
хмм...
Цитата з фільму «Соціальна дилема» описує ставлення великих суч.соц.мереж до клієнтів, пропонуючи засилля реклами, «розумні алгоритми» та маніпулюючи емоціями для максимального утримання. З цим давно все не так.
І тому нові соц.мережі та платформи намагаються виїхати на темі «ми — не корпорація монстрів», «ми — клієнтоорієнтовані», «ми дамо вам заробити на вашому неповторному контенті», «ми цінуємо Вас та Вашу думку», «ми — гнучкі та запропонуємо унікальний функціонал». Приклад такої клієнтоорієнтованості Ви можете бачити не лише на we.ua, а й в інших нових українських соцмережах: pleex.com та fankolo.com.
імєнно. намагаються виїхати. Але ми то розумні люди і розуміємо, що гроші десь звідкілясь мають братися. Реклама, продаж синіх галочок чи капелюхів, маніпуляція позицією в видачі.
Ще можна гратись з розкруткою бренду та інвестиціями в ТОВ. Можна також розкручувати власну криптовалюту, як це успішно робить Sl8. Та, все ж, найприбутковіше і до чого всі укр.суч.соц.мережі рано чи пізно прийдуть — це контекстна реклама.
і, до речі, на we.ua є контекстна реклама від Google (в т.ч. і в додатках), адже проєкт має бути як мінімум самодостатнім. То ж, кожен постійний відвідувач платить своєю увагою та переходами з контекстної реклами. Все просто і відкрито. Якщо Ви хочете монетизувати власний унікальний контент у своєму каналі на we: , ми можемо розмістити в ньому контекстну рекламу і Ви отримаєте 100% прибутку з неї на рахунок згідно договору.
тут я бачу потенційний конфлікт інтересів.
я не хочу дивитися рекламу. Тому у мене юблок, преміум і телега, де (поки що) реклама не виглядає як триндєц і я її майже не бачу (бо не сиджу в здорових каналах і групах)
Тож безальтернативна реклама для мене — мінус.
Можна було би додати платну опцію вимкнення реклами. Але тоді в програші виявляться автори каналів, котрі розраховували «отримати 100% прибутку».
я все це пишу не як неофіт, а чисто поговорити, бо мій профіль споживання інформації не дуже перетинається з вашою апкою.
Ніхто ж не говорить, що у додатках we.ua контекстної реклами буде багато. Все в дуже розумних межах. Та й реклама в TG радше буде розростатись, бо дітище Дурових невпинно споживатиме все більше ресурсів.
Окремо: можна поцікавитись Вашим «профілем споживання інформації»? На які канали Ви підписані, які сайти, крім DOU читаєте?
з публічних в телезі є, але зам’ючені, повітряні сили і шрайк і незам’ючені дніпро алєрт. Всьо. А,нє, ще слина є. В збереженому збережені 4 посилання — канали кррогу, дніпра, обмєнніка і аварійки, щоб іноді зайти і глянути новини. Замінив би їх сайтом, але з сайтів вже всі здриснули в телегу, падлюки (
з сайтів — доу, хакернюз, зранку пробігтися очима по заголовкам на укрінформ і дзеркалі тижня (і скривитися через стан журналістики), увечері — пробігтися очима по медузі.
з медіа — наукпоп на ютубі.
Я б сказав що соціальної складової я намагаюся уникати.
Як на мене — мертвонароджений проект
Зараз такого хоть жопой їж кому воно треба
Сподіваюсь люди наїдятся вже ціх дебільних соц мереж і почнуть їх видаляти і більше часу проводити в офлайні
Доброго дня. Дякую за Вашу думку. Як багато Ви чули про українські додатки, щоб і канал почитати, і другу написати, і лайки в профілі зібрати?
Кілька месенджерів є. Є кілька соцмереж: we.ua/...ukrainian-social-networks (навіть +2 в цьому році).
Але в них немає імпорту контенту з TG, чи YouTube.
Це добре що воно українське, але проблема в тому, що там не буде трафіку скоріше за все і тому ніхто не буде там сидіти. Нові Фейсбуки не роблять не тому, що це дуже складно, а тому що туди не загонишь людей у яких вже є фейсбук. Ну або треба вкладати величезні кошти в рекламу і не факт що воно допоможе.
Про доцільність платформи we.ua: скільки, на Вашу думку, вкладає Дуров, щоб з кожної української праски лунали «читайте нас в Telegram», «підписуйтесь на наш Telegram-канал»? Бюджети кажете?)) Ми бачимо потенційну проблему з українськими публічними каналами в російському Telegram і рухаємось в напрямку нішевого рішення. Різні «приватні», чи «приховані» канали нехай лишаються там, де вони є.
Запрошую відвідати новини на we: we.ua/news та підписатись на кілька знайомих джерел, щоб зручно знайомитись з оновленнями та подіями в галузі.
Додаток we.ua для iOS: канали, месенджер, профілі.
apps.apple.com/...платформа-we/id6636553491
Додаток we.ua для Android:
play.google.com/...ore/apps/details?id=we.ua
Від сьогодні додаток we.ua доступний для iOS (iPhone)
apps.apple.com/...платформа-we/id6636553491