Fréy (Александр Карташов)@Zeddushka
Архитектор, Техлид, Разработчик мобилок
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность
Специализация
Разработчик мобильных приложений, Архитектор программного обеспечения
Ведущий
Разработка под Android
Java
Базы данных
Linux
Git
Проектирование архитектуры приложений
Kotlin
Jetpack Compose
Шикарная статья, спасибо! )
Если добавить ещё анимированные картинки под каждым описываемым эффектом, статья будет просто легендарной!
Важно, что команда перед построением правил организации кода должна понимать, как будет продукт выглядеть в целом, как будет развиваться. Вопросы, которые остались без ответа, как раз и вносят степень неопределённости. Исходя из всех данных и неизвестных, как правило и выбирается подход к организации кода.
Как пример, надо накидать приложение для проверки доступов с мобильного устройства к определённым ресурсам, чтобы быть готовым к тестовому запуску реального приложения, когда придёт заказчик проверять. Никаких паттернов — god object, несколько минут — и готово.
Или же приложение-комбайн для автоматизации всех внутренних процессов на магазинах, на старте уже гора бизнес-процессов, и потенциально ещё гора, о которой не знает даже зам заказчик. Вот тут начинаем уже хорошо закладываться и корректно организовывать всё.
Само-собой, лучший вариант — адаптация всех подходов под ваши задачи.
Один из фундаментальных аргументов в скоупах — «освобождение классов, что сейчас не нужны». Хотелось бы узнать, не измеряли ли реальное влияние на занимаемую память? Ведь класс, скорее всего, останется загружен в память, а экземпляры будут освобождены. Во многих наших кейсах вообще не целесообразно, это выливается в экономию на спичках, 1-2 мегабайта суммарно по всему приложению. То есть, сами экземпляры достаточно мало занимают памяти. Если вы, конечно, в полях классов храните много данных. Более того, меньше в рантайме создаётся новых экземпляров (тоже «спички»)
Не смотрели, как это сделать для compose?
Как видите по статье, локальные могут тоже сделать что-то полезное и иногда даже быстрее для разработчика, который решил поработать из тайланда )
Спасибо за статью! Аж вспомнилось как разрабатывал и архитектурил EMM Magnit, было время…
Создаёте ЕММ для корп сектора? Вроде управления ТСД/Корп смартфонами? Только на API Android For Enterprise (device owner, profile owner) ориентируетесь?
Представленные модели, не то, чтобы большие )
У нас развёрнуты и большие централизованно, но в условиях частых локдаунов неплохо иметь свою
Для доступа к хост-машине(вашему ПК, на котором запущен эмулятор) на Android зарезервирован IP=10.0.2.2
То есть, если вы введёте 10.0.2.2:8080 — вы «попадёте» на запущенный вами сервер из примере
Спасибо за статью! Нет ли информации, можно ли как-то доучить нейронку на предыдущих merge request, чтобы она осуществляла ревью, близкое к стилистике команды?
Сообщество как раз для того и нужно, чтобы обсуждать и делится опытом, попробуйте обязательно, и найдутся те, кто решает такие же задачи, как и Вы, и, возможно, помогут Вам найти решение ещё лучше )
Само-собой )
Цель статьи показать всем, что это очень просто, не нужно бояться и базово вам не нужны особые навыки, чтобы начать. Что даже маленькие модели и не очень мощный компьютер может дать вам уже какой-то профит
С простыми скриптами мне неплохо помогала и модель из статьи, однако, в вашем случае есть смысл попробовать более серьёзные модели, здесь можно искать по ключевым словам https://ollama.com/search и подобрать в моделях достатояно разные. Я бы пробовал идти постепенно к увеличению модели, обращая внимание на качество ответов и скорость. Один из коллег у нас использовал модель, размером почти 105 гигабайт, но для цели кодинга она не подходила. То есть, очень важно обращать внимание на описание на сайте, что приложил
Мне кажется, это отличная тема для статьи на хабр: сравнить решения на одних и тех же запросах и проекте на конфигурации из статьи, и на той, что вы предлагаете. Если у вас много материала по поводу — поделитесь с сообществом )
Никто не спорит, что чем больше ресурсов и больше модель, тем лучших результатов можно достичь. В статье указано, что можно и на другом компьютере запустить ollama, и с рабочего к нему подключиться. Я уверен, что многие, кто стеснялся использовать нейросети, смогут настроить у себя, и их следующий шаг будет уже "мощная машина" дома для более "тяжёлых" моделей. Как говорится: "аппетит приходит во время еды"
Когда начинал свой путь в разработке почти 12 лет назад, был на проектах с гибридными приложениями: cordova + sencha touch (в нём не было jquery, который люто тормозил в мобильном webview) . Они отлично справлялись в большинстве случаев, очень мало весили (1,5 мегабайт), и, благодаря тому, что это веб-приложение, обновлялись с бэкэнда без обновления нативной части. Для нативщины писались свои плагины. Однако, на публичных приложениях им было иногда сложно: на iOS был глючный webview, у кого-то - убитый, старый android. Поэтому тренд был на нативщину.
Сейчас же мобилы настолько мощные, что веб для них настолько же быстр в типовых задачах, что большинство пишет веб и не парится, многим (магазины, маркетплейсы и прочие витрины) нет смысла делать нативщину. Особенно, учитывая быстрый интернет. Многим уже не зазорно заставить пользователя загрузить 2-3 мегабайта данных на старте. Всё больше приложений хранят данные всегда на сервере, без локальной базы. Например, для пользователя нет разницы уже: открыть нативное приложение того же «сбера» или открыть версию мобильного банка. Более того, для многих владельцев android преимущество может быть даже за веб-версией тк веяние «частых релизов» заставляет его каждый раз выкачивать обновление APK на 600МБ в то время как веб потребует всего ~10МБ траффика. Для владельцев iOS же веб будет преимуществом в возможности в текущих условиях пользоваться всем актуальным функционалом без поездки в офис для установки/обновления, особенно учитывая, что ребята сделали авторизацию по биометрии даже через веб.
Тут же пошёл перекос в злоупотребление приложениями: все крупные игроки, как всегда, идут за каждым чихом какого-нибудь «gartner». Сказал gartner «крутые только те, кто пройдёт цифровую трансформацию», - все начали, даже те, у кого ИТ просто мельчайшая функция, даже те, кто не понимал что это и зачем это ему. Просто так модно. И вот однажды было слово «крутые только те, у кого экосистема». И тут понеслось: сотовые операторы стали свалками всего подряд, каждый стор стал и банком, каждое такси стало свалкой (уже не так просто заказать такси в приложении известного агрегатора), банки стали всем подряд, все начали пихать в свои приложения всё.
Мы просто лишились простых и удобных приложений, позволяющих быстро выполнить требуемую функцию.
Учитывая, что вы упустили юридический момент со шрифтами, я бы рекомендовал изучить больше этот аспект: канал связи может стать дороже и лимитным, если провайдер решит, что вы занимаетесь коммерческой деятельностью. Так же, может прийти налоговая, узнать кто и что вам задонатил (хотя по онлайн, опубликованному вами, скорее всего, донатов пока не было) - должно быть всё корректно оформлено, иначе могут посчитать, что это не «пожертвования», а «заработок» )
Давным-давно разворачивал свой в локалке, java-сервер. Естественно, когда все свои, защиты от хакинга пакетов просто не нужны были.
Отличительной особенностью java сборок тогда было то, что в локациях были не только сундуки, но и «сундуки», что являлись монстрами и нападали, когда ты пытался их открыть ключом.
Какие хроники в итоге выбрали?
У жены есть клавиатура официальная. В самой клавиатуре так же есть порт, в который можно подключить зарядник. Порт ipad остаётся в таком случае свобоным
Это прям вообще беда: даже плагины не скачать к продуктам idea из маркета, приходится ставить архивами
Стоит заметить, что
android.permission.CHANGE_WIFI_STATEна том target, что указан, не позволит, например, включить WIFI, а лишь попросить пользователя подключиться к конкретной WIFI сети с уведомлением