Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ragunathjawahar/kaffeine
Kaffeine is a Kotlin-flavored Android library for accelerating development.
https://github.com/ragunathjawahar/kaffeine
Last synced: 2 months ago
JSON representation
Kaffeine is a Kotlin-flavored Android library for accelerating development.
- Host: GitHub
- URL: https://github.com/ragunathjawahar/kaffeine
- Owner: ragunathjawahar
- Archived: true
- Created: 2015-01-29T11:33:46.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-07-19T00:26:40.000Z (over 7 years ago)
- Last Synced: 2024-07-29T11:35:43.773Z (6 months ago)
- Language: Kotlin
- Homepage:
- Size: 204 KB
- Stars: 154
- Watchers: 7
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-kotlin-libraries-for-android - Kaffeine - Kaffeine is a Kotlin-flavored Android library for accelerating development. (<a name="utility"></a>Utility <sup>[Back ⇈](#contents)</sup>)
- trackawesomelist - ragunathjawahar/kaffeine (⭐154)
README
Kaffeine
========
Kaffeine is a Kotlin-flavored Android library for accelerating development.Several Words of Caution
------------------------
Besides the obvious productivity advantages, if you are using this project - be prepared to shoot
yourself in the foot or to blow your legs off. This is an experimental project that I am working on
while I learn Kotlin and functional programming. Some of the lucrative approaches used in
this project may not be best practices and I don't have any guarantees over the API. Don't be
surprised if the API changes for every SNAPSHOT. If you are trending along a safe path, this project
is definitely not for you. I may highlight caveats in some of the approaches if I am smart enough
to figure them out. But, feel free to throw some light if you spot some dumbness (or a lot) along
the lane.Activities & Services
---------------------Example: Start an Activity
**Java**
````java
Intent intent = new Intent(this, SuperPowersActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
````**Kotlin**
````kotlin
val flags = flags(Intent.FLAG_ACTIVITY_NEW_TASK, Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(flags)
````Layout Inflation
----------------**Java**
````java
LayoutInflater layoutInflater = LayoutInflater.from(this);
View awesomeView = layoutInflater.inflate(R.layout.my_awesome_layout, null);
````**Kotlin**
````kotlin
val awesomeView = inflateLayout(R.layout.my_awesome_layout)
````Logs
----Example: Logging
**Java**
````java
String tag = this.getClass().getName();
Log.i(tag, "Howdy! Info");
Log.d(tag, "Knock knock! Debug");
Log.e(tag, "Grim, Error");
Log.wtf(tag, "Damn! WTF"); // Nope, not what you think. Refer the docs :P
````**Kotlin**
````kotlin
i("Howdy! Info")
d("Knock knock! Debug")
e("Grim, Error")
wtf("Damn! WTF")
````Preferences
-----------Example: Single Preference
**Java**
````java
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = preferences.edit();
editor.putBoolean("KEY_WALKTHROUGH_COMPLETE", complete);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
editor.commit();
} else {
editor.apply();
}
````**Kotlin**
````kotlin
getDefaultSharedPreferences().putBoolean("KEY_WALKTHROUGH_COMPLETE", complete)
````Example: Bulk Preferences
**Kotlin**
````kotlin
getDefaultSharedPreferences()
.bulk()
.putBoolean("KEY_WALKTHROUGH_COMPLETE", complete)
.putString("KEY_LAST_USED", lastUsedIso8601Date)
.applyBulk()
````Toasts
------Example: Short Message
**Java**
````java
Toast.makeText(this, R.string.welcome, Toast.LENGTH_SHORT).show();
````**Kotlin**
````kotlin
showShortToast(R.string.welcome)
````Example: Custom Toast
**Java**
````java
Toast toast = new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
````**Kotlin**
````kotlin
showShortToast(view)
````System Services
---------------**Java**
````java
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
````**Kotlin**
````kotlin
val alarmManager = context.alarmManager()
val notificationManager = context.notificationManager()
````Resources
---------Example: Typeface from Assets
**Java**
````java
AssetManager assetManager = getAssets();
Typeface sourceSansPro = Typeface.createFromAsset(assetManager, "fonts/source-sans-pro.ttf");
````**Kotlin**
````kotlin
val sourceSansPro = typefaceFromAssets("fonts/source-sans-pro.ttf")
````More...
-------
More extensions under development.Maven
-----
com.mobsandgeeks
kaffeine
0.1-SNAPSHOT
Gradle
------
dependencies {
compile 'com.mobsandgeeks:kaffeine:0.1-SNAPSHOT'
}Snapshots
---------
In your `{project_base}/build.gradle` file, include the following.allprojects {
repositories {
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
}License
-------
Copyright 2015 Mobs & GeeksLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.