kotlin-core - A full framework for making Android apps. Based on Anko and Kotson.

Overview

kotlin-core

This package is not Android-specific, and can be used across platforms. However, for a good example of use in Android, take a look at kotlin-components-starter.

This package is meant to contain a collection of useful extensions on both the standard library and the Java standard library.

Related Repositories

Overall Philosophy

Minimality: When possible, these libraries don't create new structure. Instead, they use extension functions to let you use current objects and classes in a more convenient and expected way.

Complete reuse: Everything that is commonly used should be included, preferably as an inline extension function to reduce the app's method count.

Intuitiveness: Use inline extension functions to make common tasks simple, such as requesting a photo from the organization. In standard Android, doing this properly would take at least a large file by itself. We have extension functions that do it in one line.

What this package contains

  • Extension functions for using collections of lambdas as events
  • A disposable interface for objects that need to do something when you're done with them (usually to remove references to enable garbage collection)
  • String extension functions
  • InputStream extension functions for putting all of the output into a ByteArray or String
  • Range extension functions for getting a random number within a numerical range
  • Math for angles and advanced rounding
  • Lifecycles - a system for consistently defining start/stops for lifecycles and listeners to them. Used extensively with Android in the kotlin-anko repository.
  • Lambda - currently, a lambda extension function which puts a cooldown on a lambda. More to come.
  • Files - File.child("text")
  • Dates - Date.toCalendar(), get and set month/year/day/minute/second/hour on Calendar
  • Collections
    • Cache - a map which, when an unavailable key is requested, it will automatically generate and enter a value.
    • Various mapping functions, which wrap a real collection. Each one is <Collection>.mapping{...} or some other verb with "ing" on the end, so as to not cause confusion the functions that actually create a new collection.
  • ByteArray to and from a string using hex
  • Async package, which includes
    • <lambda>.invokeAsync(...){ /*ui thread callback*/ }
You might also like...
Android Plugin Framework

Android Plugin Framework This project is pre-mature and may be changed very frequently. Introduction Android Plugin Framework (APF) aims to providing

MVVM framework for Android

RoboMVVM - MVVM Framework For Android RoboMVVM is an open source library that facilitates the use of the MVVM pattern in Android apps. The MVVM patter

🔪  AOP development framework implemented through *Annotation + ASM + Gradle Transform API*  for Android🤖
🔪 AOP development framework implemented through *Annotation + ASM + Gradle Transform API* for Android🤖

🔪 AOP development framework implemented through *Annotation + ASM + Gradle Transform API* for Android🤖

A framework for hook java methods.
A framework for hook java methods.

Legend Projects are out of date, plese move to: Whale Hook What is Legend? Legend is a Hook framework for Android Development, it allows you to Hook J

A Mosby based VIPER library for Android

Moviper A Mosby based VIPER library for Android Why Moviper? You got tired because of fact that your Activities and Fragments were becoming god classe

🚀Plugin for Android Studio And IntelliJ Idea to generate Kotlin data class code from JSON text ( Json to Kotlin )
🚀Plugin for Android Studio And IntelliJ Idea to generate Kotlin data class code from JSON text ( Json to Kotlin )

JsonToKotlinClass Hi, Welcome! This is a plugin to generate Kotlin data class from JSON string, in another word, a plugin that converts JSON string to

The most complete and powerful data-binding library and persistence infra for Kotlin 1.3, Android & Splitties Views DSL, JavaFX & TornadoFX, JSON, JDBC & SQLite, SharedPreferences.

Lychee (ex. reactive-properties) Lychee is a library to rule all the data. ToC Approach to declaring data Properties Other data-binding libraries Prop

Create kotlin android project with one line of command.

README This is an android application template project built with kotlin language and some useful libraries. It provides a creator script to quickly c

Intellij Idea, Android Studio plugin for generating Kotlin data classes from JSON. Helps to avoid writing boilerplate code for model classes. Supports annotations for Gson, Moshi, Jackson.
Intellij Idea, Android Studio plugin for generating Kotlin data classes from JSON. Helps to avoid writing boilerplate code for model classes. Supports annotations for Gson, Moshi, Jackson.

JSONToKotlinClass Intellij Idea, Android Studio plugin. Plugin generates Kotlin data classes from JSON text. It can find inner classes in nested JSON.

Comments
  • License

    License

    hey! :-) would you mind specifying a license for this and the related repositories? i could not find anything within the repos, which means the default applies, which is: All rights reserved i'd like to use kotlin-observable, for example.

    opened by hoijui 0
  • Jars / Project Dependencies for gradle

    Jars / Project Dependencies for gradle

    Hey, I just tried to use these libs (actually just anko-oberservable, but the others depend). My first try was to put them in a gradle submodule named '3rdParty'. This is not possible, as the libs all make dependencies on the top level. So kotlin-anko depends on ':anko-core' so following error comes : Project with path ':kotlin-core' could not be found in project ':3rdParty:kotlin-anko'.

    A solution is, to put all the top level and not in 3rdParty. But this is quite ugly.

    So is there another solution or is there anything you can do about it? Maybe changing the build scripts to depend on the others in the same path. Or are there any precompiled jars? (haven't found them on mavenCentral and bintray/jcenter)

    Greetings,

    opened by bvolkmer 2
Releases(0.3)
Owner
Lightning Kite
Lightning Kite
A small, yet full-featured framework that allows building View-based Android applications

Conductor A small, yet full-featured framework that allows building View-based Android applications. Conductor provides a light-weight wrapper around

BlueLine Labs 3.9k Jan 6, 2023
A full-featured framework that allows building android applications following the principles of Clean Architecture.

EasyMVP A powerful, and very simple MVP library with annotation processing and bytecode weaving. EasyMVP eliminates the boilerplate code for dealing w

null 1.3k Nov 19, 2022
Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Codename One - Cross Platform Native Apps with Java or Kotlin Codename One is a mobile first cross platform environment for Java and Kotlin developers

Codename One 1.4k Dec 23, 2022
UltimateAndroid is a rapid development framework for developing your apps

UltimateAndroid Version:0.10.2 UltimateAndroid is a rapid development framework for developing apps Master branch: Dev branch: V0.7.0 Ui Demo screensh

MarshalChen 2.1k Dec 26, 2022
🔥 Android component-based routing framework

README-CN Latest version module krouter-core krouter-compiler krouter-annotation krouter-plugin version Features 支持通过路由获取intent 支持方法注解,通过路由调用方法 支持给fra

Jiaming Gu 6 Jun 24, 2022
VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform.

VasSonic: A Lightweight And High-performance Hybrid Framework VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS

Tencent 11.6k Dec 30, 2022
A Model-View-Presenter / Model-View-Intent library for modern Android apps

Mosby A Model-View-Presenter and Model-View-Intent library for Android apps. Dependency dependencies { compile 'com.hannesdorfmann.mosby3:mvi:3.1.1

Hannes Dorfmann 5.5k Dec 25, 2022
LiteOrm is a fast, small, powerful ORM framework for Android. LiteOrm makes you do CRUD operarions on SQLite database with a sigle line of code efficiently.

#LiteOrm:Android高性能数据库框架 A fast, small, powerful ORM framework for Android. LiteOrm makes you do CRUD operarions on SQLite database with a sigle line

马天宇 1.5k Nov 19, 2022
Rosie is an Android framework to create applications following the principles of Clean Architecture.

Rosie The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times. — Robert C. Martin in Clean Cod

Karumi 1.8k Dec 28, 2022
A data-binding Presentation Model(MVVM) framework for the Android platform.

PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED. As personal time contraints, I am currently unable to keep up. Please use official android da

RoboBinding open source 1.3k Dec 9, 2022