Skip to content

Instantly share code, notes, and snippets.

Yuki Anzai yanzm

Block or report user

Report or block yanzm

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View FizzBuzzGenerator.kt
//
// at domain layer
//
class FizzBuzzNumber(private val number: Int) {
fun expression(): String {
val isMul3 = number % 3 == 0
val isMul5 = number % 5 == 0
return when {
View fizzbuzz.kt
//
// https://twitter.com/yanzm/status/1096312798412328970
//
//「3の倍数のときは fizz が返る」
//「5の倍数のときは buzz が返る」
//「3の倍数かつ5の倍数のときは fizzbuzz が返る」
//「3の倍数でも5の倍数でもないときはそのままの数字が返る」
//
// ① Entity または ValueObject(Clean Architecture だと Entities に入る)がもつロジックだと思う
// ② DomainService (これも Clean Architecture だと Entities に入る)だと思う
@yanzm
yanzm / sample.kt
Created Feb 12, 2019
DroidKaigi 2019 の 「ぼくのかんがえた最強の Usecase の作り方」 https://www.youtube.com/watch?v=bw8bckLSKiM というセッションで出てきたビジネスロジックの実装を考えてみました。
View sample.kt
//
// DroidKaigi 2019 の 「ぼくのかんがえた最強の Usecase の作り方」 https://www.youtube.com/watch?v=bw8bckLSKiM
// というセッションで出てきたビジネスロジックの実装を考えてみました。
//
// - 設定が有効なら救急の番号には Prefix をつけない
// - 設定が有効ならフリーダイアルの番号には Prefix をつけない
// - 無視リストの宛先には Prefix をつけない
//
data class PhoneNumber(private val number: String) {
init {
@yanzm
yanzm / MainActivity.kt
Created Oct 26, 2018
setCompoundDrawablesWithIntrinsicBounds と setCompoundDrawablesRelativeWithIntrinsicBounds で view.measure() の結果が違う
View MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val metrics = resources.displayMetrics
val widthMeasureSpec =
View.MeasureSpec.makeMeasureSpec(metrics.widthPixels, View.MeasureSpec.AT_MOST)
@yanzm
yanzm / MainActivity.java
Created Jan 26, 2017
Customize GridLayoutManager sample
View MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final RecyclerView recyclerView = new RecyclerView(this);
setContentView(recyclerView);
recyclerView.setHasFixedSize(true);
View gist:5eb70b27be9ec8fb966c
private static final String PREF_SIZE_KEY = "pref_size_key";
public static void saveSize(@NonNull Context context, @Nullable Size size) {
final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = pref.edit();
if (size == null) {
editor.remove(PREF_SIZE_KEY);
} else {
editor.putInt(PREF_SIZE_KEY, size.getValue());
}
View gist:c514dd807bfc882b97fd
/**
* サイズId値を保持するクラス
* <p/>
* 値がセットされていない状態を持つ
*/
public class SizeId {
public static final int VALID_SIZE1 = 1;
public static final int VALID_SIZE2 = 2;
View gist:023296b825f8104f1c1b
/**
* サイズId値を保持するクラス
* <p/>
* 値がセットされていない状態を持つ
*/
public class ValidatableSize {
public static final int VALID_SIZE1 = 1;
public static final int VALID_SIZE2 = 2;
View マッチョじゃないActivity
package net.yanzm.profileapplication;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.app.FragmentManager;
import android.content.Intent;
import android.net.Uri;
View マッチョなActivityサンプル
package net.yanzm.profileapplication;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
You can’t perform that action at this time.