Giter VIP home page Giter VIP logo

app-econom's Introduction

Эконом

Pet-project, направленный в первую очередь на изучение новых подходов и новых инструментов.

Disclaimer

В проекте в немалом количестве присутствуют огрехи и компромисные решения. Некоторые помечены TODO-комментариями, а некоторые нет. Просьба не расценивать код как эталон, а просто по необходимости примечать для себя некоторые решения. Также будет большая благодарность, если подкинете идей, как можно улучшить код =)

Jetpack Compose

В проекте используется JetpackCompose + SingleActivity
Отсутствуют полностью фрагменты

Навигация

Навигация используется стандартная для моих проектов - самописное решение с Destination и инжектом routers во Presentation-слой
Для подхода с использованием Compose навигация была адаптирована. Используется самописный примитивный стек навигации.

Реализация самописной навигации под стандартные Fragmet

Repository

Реализация самописной навигации, адаптированной под Compose

Repository

Custom View

Jetpack Compose на момент написания проекта предлагает в большинстве своем примитивные Composable-View
Для реализации уже стандартных компонентов пришлось писать код с 0, например различные варианты InputTextField в TextFieldComposable.kt

Для других компонентов, для более удобного использования стилизованных текстов были реализованы вариации Text в TextComposable.kt

Для соответствия Slot Api были примеры с переопределением LocalProvider. Используется для того, чтобы локально, в рамках одной или нескольких composable можно было переопределить styles/colors/shape/alpha/appearance.

Compose Effect / ComposeState

Для запуска SnackBar использовался стандартный инструмент LaunchEffect, который по сути является оберткой над Coroutine, адаптированной под использование в compose.

Для запуска BottomSheet пришлось использовать экспериментальный код, аналог Scaffold, только с модальным нижним диалогом. Имхо такой вариант очень некрасив и неудобен. Соответственно и реализовать его адекватно (с точки зрения стройности кода) его не получилось, несмотря на то, что функционал полностью работает

Gradle

В данном проекте в рамках эксперимента был совершен переход на Kotlin Gradle Scripts. Новый функционал достаточно интересен. При этом скорость сборки как минимум такая же, а в некоторых сценариях даже выше, чем при использовании gradle groovy.

Однако в процессе реализации возникла проблема с таской clean - которая вроде и выполняется успешно, но при этом выдает ошибку на новый build-модуль Именно по этой причине код не залит пока что в develop, а ждет своего часа в ветке improvement/gradle-refactor

Скрины

econom_1 econom_2

econom_3 econom_4

econom_5 econom_6

app-econom's People

Contributors

rasm24 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.