Skip to content

Instantly share code, notes, and snippets.

View ham-burger's full-sized avatar
🏠
Working from home

Kotaro Kudo ham-burger

🏠
Working from home
View GitHub Profile
@ham-burger
ham-burger / gist:2cf67bd94aabb6fd6e57542e2ef88165
Created May 17, 2022 03:23
JIRAオートメーションでのメンション
[~accountid:{{issue.reporter.accountId}}]
@ham-burger
ham-burger / date_time_extension.dart
Created August 11, 2020 02:00
[Dart]datetimeをフォーマットする拡張関数
import 'package:intl/intl.dart';
extension DateTimeExtension on DateTime {
String toFormattedString({String format = 'yyyy/MM/dd HH:mm'}) {
var formatter = DateFormat(format, "ja_JP");
var formatted = formatter.format(this);
return formatted;
}
}
@ham-burger
ham-burger / JSONDecoderExtension.swift
Created July 30, 2020 03:07
JSON encode decode extension in swift
extension JSONDecoder{
static var commonSettingInstance: JSONDecoder {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
decoder.dateDecodingStrategy = .iso8601
return decoder
}
}
@ham-burger
ham-burger / Alamofire+Codable.swift
Last active July 30, 2020 02:57
iOSのREST APIリクエストのサンプル
struct User: Codable {
let name: String
let age: Int
}
Alamofire.request("\(endpoint)"
method: .get,
parameters: nil,
encoding: JSONEncoding.default,
headers: nil)
@ham-burger
ham-burger / IntentExtension.kt
Created March 18, 2020 07:08
getStringはデフォルト値を設定できないので、拡張関数で対応
import android.content.Intent
fun Intent.getStringExtra(key: String, default: String): String {
return getStringExtra(key) ?: default
}
// getStringExtra(key, default)のエイリアス
fun Intent.getStringExtraWithDefaultValue(key: String, default: String = ""): String {
return getStringExtra(key, default)
}
@ham-burger
ham-burger / DialogFragmentExtension.kt
Created February 13, 2020 09:16
activityとfragmentどちらからも呼ばれるDialogFragmentのコールバック先を取得する関数
fun <T> DialogFragment.getTarget(): T? = (targetFragment ?: context) as? T
// 例
class FooDialogFramgment: DialogFragment() {
private var listener: FooListener? = null
override fun onAttach(context: Context?) {
super.onAttach(context)
listener = getTarget()
}
@BindingAdapter("isBold")
fun TextView.setIsBold(isBold: Boolean) {
val typeface = if (isBold) Typeface.BOLD else Typeface.NORMAL
setTypeface(null, typeface)
}
@BindingAdapter("textWithUnderline")
fun TextView.setTextWithUnderline(text: String) {
val spannableString = SpannableString(text)
spannableString.setSpan(UnderlineSpan(), 0, text.count(), 0)
@BindingAdapter("isVisible")
fun View.setIsVisible(isVisible: Boolean) {
visibility = if (isVisible) View.VISIBLE else View.INVISIBLE
}
@BindingAdapter("isExist")
fun View.setIsExist(isExist: Boolean) {
visibility = if (isExist) View.VISIBLE else View.GONE
}
val Calendar.year: Int get() = get(Calendar.YEAR)
val Calendar.month: Int get() = (get(Calendar.MONTH) + 1)
val Calendar.day: Int get() = get(Calendar.DAY_OF_MONTH)
private val sdf = SimpleDateFormat("yyyy年MM月dd日", Locale.JAPAN)
val Calendar.formattedDate: String
get() = sdf.format(this.time)