Skip to content

Instantly share code, notes, and snippets.

View Atsumi3's full-sized avatar
:octocat:

atsumi Atsumi3

:octocat:
View GitHub Profile
@Atsumi3
Atsumi3 / methodMonitoring.swift
Created March 18, 2019 11:33
[Swift4] メソッドの動作確認用クロージャ
/*
// example:
func getAuthToken() -> String {
return methodMonitoring {
return apiService.requestToken()
}
}
MONITORING: ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MONITORING: ┃ Thread: <NSThread: 0x6000036ef280>{number = 1, name = main}
@Atsumi3
Atsumi3 / IdlingResourceExtension.kt
Created February 14, 2019 08:46
IdlingResource.use
import android.support.test.espresso.IdlingRegistry
import android.support.test.espresso.IdlingResource
inline fun <T: IdlingResource?, R> T.use(block: (T) -> R): R {
var exception: Throwable? = null
try {
IdlingRegistry.getInstance().register(this)
return block(this)
} catch (e: Throwable) {
exception = e
@Atsumi3
Atsumi3 / ViewListAdapter.kt
Last active December 13, 2018 08:18
カスタムビューの表示や動作チェックに使えるかも
// usage
val adapter = ViewListAdapter(listOf(TextView::class, ImageView::class, Button::class)).apply {
listener = object : ViewListAdapter.Listener {
override fun onViewSelect(selectedViewInstance: View?) {
when(selectedViewInstance) {
is TextView -> selectedViewInstance.text = "textView"
is ImageView -> selectedViewInstance.setImageResource(android.R.drawable.ic_input_add)
is Button -> selectedViewInstance.text = "button"
}
}
@Atsumi3
Atsumi3 / KClassExtensions.kt
Created December 13, 2018 07:25
Create instance from KClass<out View>, with constructor parameters.
fun KClass<out View>.get(context: Context): View? = primaryConstructor?.call(context)
@Atsumi3
Atsumi3 / VagrantFile
Created August 23, 2018 06:25
[VagrantFile] CentOS7 + docker-compose
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision "shell", inline: <<-SHELL
# update
sudo yum update
# add docker repo
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
@Atsumi3
Atsumi3 / Main.java
Created June 14, 2018 09:40
Simple Dagger2 (Pure Java)
import dagger.Component;
import dagger.Module;
import dagger.Provides;
import javax.inject.Inject;
public class Main {
public static void main(String[] args) {
AnimalCry animalCry = new AnimalCry();
animalCry.cry();
@Atsumi3
Atsumi3 / memo1
Last active October 11, 2016 05:33
NS*CalendarUnit -> NSCalendarUnit*
# pattern
## 3: NSDayCalendarUnit
## 17: NSYearForWeekOfYearCalendarUnit
NS(.{3,17})CalendarUnit
# replace
NSCalendarUnit$1
// Factory Method
public interface Human {
String getName();
}
/// Tanaka Factory
sealed class TanakaImpl : Human {
public string getName() {
return "Tanaka";
}
// Factory Method
public interface Human {
String getName();
}
/// Tanaka Factory
final class TanakaImpl implements Human {
@Override public String getName() {
return "Tanaka";
}
// Factory Method
public protocol Human {
func getName()->String;
}
/// Tanaka Factory
final class TanakaImpl : Human {
func getName() -> String {
return "Tanaka";
}