Alternatives To Cookiecutter
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Sqlfrags6114 years ago3February 29, 2020mitF#
Sql generator for F#
a year ago9January 05, 20221mitGo
Fast SQL query builder for Go
3 years ago13cc0-1.0
The hot new standard in open databases
9 years agoMay 23, 2021Go
Gatsby Database Toolkit For Go (ORM, SQL Builder and SQLUtils)
Sql Fragment9
3 years agobsd-3-clauseHaskell
Type safe SQL query combinator in haskell
Sql Athame8
a year agomitPython
Python tool for slicing and dicing SQL
4 years agoC++
7 years agomitCoffeeScript
criterion describes sql-where-conditions as objects which can be combined and manipulated
4 years ago1C#
A simple SQL formatter
4 years agoJava
Alternatives To Cookiecutter
Select To Compare

Alternative Project Comparisons


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.

How the project is structured

  • sampleapp
  • globantsdk

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.

globantsdk contains:

  • BaseView
  • BaseViewModel
  • BaseActivity
  • UseCaseRepository

Here a simple diagram to explain the architecture: alt text

Room Persistence Library

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.

Popular Sql Projects
Popular Fragment Projects
Popular Data Processing Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.