|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Sqlfrags||61||1||4 years ago||3||February 29, 2020||mit||F#|
|Sql generator for F#|
|Sqlf||37||a year ago||9||January 05, 2022||1||mit||Go|
|Fast SQL query builder for Go|
|Csvz||21||3 years ago||13||cc0-1.0|
|The hot new standard in open databases|
|Gatsby||20||9 years ago||May 23, 2021||Go|
|Gatsby Database Toolkit For Go (ORM, SQL Builder and SQLUtils)|
|Sql Fragment||9||3 years ago||bsd-3-clause||Haskell|
|Type safe SQL query combinator in haskell|
|Sql Athame||8||a year ago||mit||Python|
|Python tool for slicing and dicing SQL|
|Ddb||8||4 years ago||C++|
|Criterion||7||7 years ago||mit||CoffeeScript|
|criterion describes sql-where-conditions as objects which can be combined and manipulated|
|Sql_formatter||6||4 years ago||1||C#|
|A simple SQL formatter|
|Cookiecutter||5||4 years ago||Java|
The initial idea of the Android CookieCutter is to provide a base and clean architecture in order to be able to implement a brand new project using Room and LiveData, having the option of chose MVVM or MVP architectural patterns.
Inside globantsdk we offer MVVM structure to build our application. This base architecture is implemented as a library module and should be included in the application gradle.
Here a simple diagram to explain the architecture:
Room provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
Apps that handle non-trivial amounts of structured data can benefit greatly from persisting that data locally. The most common use case is to cache relevant pieces of data. That way, when the device cannot access the network, the user can still browse that content while they are offline. Any user-initiated content changes are then synced to the server after the device is back online.
The core framework provides built-in support for working with raw SQL content. Although these APIs are powerful, they are fairly low-level and require a great deal of time and effort to use:
There is no compile-time verification of raw SQL queries. As your data graph changes, you need to update the affected SQL queries manually. This process can be time consuming and error prone.
You need to use lots of boilerplate code to convert between SQL queries and Java data objects.
Room takes care of these concerns for you while providing an abstraction layer over SQLite.
LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
LiveData considers an observer, which is represented by the Observer class, to be in an active state if its lifecycle is in the STARTED or RESUMED state. LiveData only notifies active observers about updates. Inactive observers registered to watch LiveData objects aren't notified about changes.
You can register an observer paired with an object that implements the LifecycleOwner interface. This relationship allows the observer to be removed when the state of the corresponding Lifecycle object changes to DESTROYED. This is especially useful for activities and fragments because they can safely observe LiveData objects and not worry about leaks—activities and fragments are instantly unsubscribed when their lifecycles are destroyed.