Skip to content

Instantly share code, notes, and snippets.

Avatar

Tunji Olu-Taiwo tunjos

View GitHub Profile
@tunjos
tunjos / clean_code.md
Created Aug 13, 2020 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin
View clean_code.md

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

@tunjos
tunjos / app_build.gradle
Created Jul 13, 2016
Producing better named Android APKs with Gradle
View app_build.gradle
apply from: "../artifacts.gradle"
@tunjos
tunjos / app_build.gradle
Created Jul 13, 2016
Automatic versionCode generation in Android Gradle
View app_build.gradle
defaultConfig {
versionCode buildVersionCode()
versionName version
}
@tunjos
tunjos / gh-pages.md
Created Jul 24, 2015
Creating a clean gh-pages branch
View gh-pages.md

Creating a clean gh-pages branch

cd /path/to/repo-name
git checkout --orphan gh-pages
git rm -rf .
echo "My GitHub Page" > index.html
git add .
git commit -a -m "Add index.html"
@tunjos
tunjos / copyReleaseApkToCustomDir.gradle
Last active Apr 2, 2020
Copy release apk to custom directory
View copyReleaseApkToCustomDir.gradle
def publish = project.tasks.create("copyReleaseApkToCustomDir")
publish.description "Copies release apk to custom directory"
android.applicationVariants.all { variant ->
if (variant.buildType.name.equals("release")) {
variant.outputs.each { output ->
if ( output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
def task = project.tasks.create("copyAndRename${variant.name}Apk", Copy)
def outputFile = output.outputFile
println "Creating " + rootProject.name + "-${versionName}.apk" + " from " + project.name + "-${variant.name}.apk"
@tunjos
tunjos / build.gradle
Created Jul 7, 2015
versionName config
View build.gradle
def versionMajor = 3
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
android {
defaultConfig {
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
}
@tunjos
tunjos / checkForPower.java
Created Jun 23, 2015
Checks if device is charging
View checkForPower.java
private boolean checkForPower() {
// It is very easy to subscribe to changes to the battery state, but you can get the current
// state by simply passing null in as your receiver. Nifty, isn't that?
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = this.registerReceiver(null, filter);
// There are currently three ways a device can be plugged in. We should check them all.
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = (chargePlug == BatteryManager.BATTERY_PLUGGED_USB);
@tunjos
tunjos / LogHelper.java
Last active Aug 29, 2015
LogHelper Class
View LogHelper.java
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
public class LogHelper {
private static final String LOG_TAG = MyConstants.APP_NAME;
public static void log(String message) {
Log.d(LOG_TAG, message);
}
View ScrollingTextView
/**
* @author marco
* Workaround to be able to scroll text inside a TextView without it required
* to be focused. For some strange reason there isn't an easy way to do this
* natively.
*
* Original code written by Evan Cummings:
* http://androidbears.stellarpc.net/?p=185
*/
public class ScrollingTextView extends TextView {
You can’t perform that action at this time.