AndroidのImageViewに関するあれこれ

お久しぶりです!しばらくブログを更新できていませんでした🙇‍♂️
アカペラ活動がようやく一段落ついたので、また更新頻度を上げていければと思います。

とはいえ、この間に何もしていなかった訳ではなく笑、技術的な話をQiitaという技術情報共有サービスに少しずつ書くようにしてみました。
(大したことは書いていないですが)

業務で画像周り(ImageView)を扱うことが多かったので、その中で知らなかったことや躓いたことを整理して投稿しました。
ImageViewに自信ニキにはなれなかったですが笑、以前より理解することはできた気がします。
めんどくさい時間はかかりますが、Androidフレームワークソースコードを読むことに対する抵抗が減ったのはよかったです。

↓書いた記事です

qiita.com

qiita.com

qiita.com


サービスの使い分け難しい…🤔

「リーダブルコード」を改めて読んでみて(その7)

「リーダブルコード」に関する記事の続きです。今回が最終回になります。長かった…笑

今回の記事では第Ⅳ部の中の14章の内容に触れていきます。
15章に関しては、書籍を読んでいただく方が理解を深めやすいと感じたので割愛します。

第Ⅳ部は「選抜テーマ」というテーマで、14章では以下の点にフォーカスしていました。

  • テストと読みやすさ


どこからともなく「テスト書いてますか?」と聞こえてきそうですが笑、僕自身テストコードをほとんど書いたことがないので、戒めの意味も込めてじっくり読みました。

続きを読む

「リーダブルコード」を改めて読んでみて(その6)

「リーダブルコード」に関する記事の続きです。

今回の記事では第Ⅲ部の中の12−13章の内容に触れていきます。
これで第Ⅲ部は完結です。

第Ⅲ部は「コードの再構成」というテーマで、12−13章では以下の2点にフォーカスしていました。

  • コードに思いを込める
  • 短いコードを書く
続きを読む

「リーダブルコード」を改めて読んでみて(その5)

「リーダブルコード」に関する記事の続きです。1ヶ月を越えてしまいました…悔しい。

今回の記事では第Ⅲ部の中の11章の内容に触れていきます。
10章と同様、11章もコードを実際に見て理解することが重要な内容であり、またコードの量も少し多めだったので、分割して書くことにしました。

第Ⅲ部は「コードの再構成」というテーマで、11章では以下の点にフォーカスしていました。

  • 一度に1つのことを
続きを読む

2019年の素数の日

興味本位で「2019年の素数の日」を計算してみました。笑
以下の19日が素数の日らしいです。

  • 1月
    • なし
  • 2月
    • 20190221 (2月21日)
    • 20190227 (2月27日)
  • 3月
    • 20190301 (3月1日)
    • 20190319 (3月19日)
    • 20190323 (3月23日)
  • 4月
    • 20190421 (4月21日)
  • 5月
    • 20190523 (5月23日)
    • 20190529 (5月29日)
  • 6月
    • 20190601 (6月1日)
    • 20190613 (6月13日)
  • 7月
    • 20190719 (7月19日)
  • 8月
    • 20190811 (8月11日)
    • 20190823 (8月23日)
  • 9月
    • 20190913 (9月13日)
  • 10月
    • 20191009 (10月9日)
    • 20191027 (10月27日)
  • 11月
    • 20191109 (11月9日)
    • 20191117 (11月17日)
  • 12月
    • 20191231 (12月31日)


書いたコードは以下です。言語は一応Kotlinです。

import java.time.LocalDate
import java.time.format.DateTimeFormatter

fun main() {
  val year      = 2019
  val beginDate = LocalDate.of(year,  1,  1)
  val formatter = DateTimeFormatter.ofPattern("yyyyMMdd")

  // 1年は最大でも366日
  for (i in 0 until 365) {
    val date    = beginDate.plusDays(i.toLong())
    val dateInt = date.format(formatter).toInt()
    
    // 翌年になった時点で終了
    if (date.year != year) break

    if (dateInt.isPrimeNumber()) println(dateInt)
  }

}

private fun Int.isPrimeNumber(): Boolean {
  // 素数は少なくとも2以上の整数
  for (i in 2 until this) {
    // 自身以外で割り切れたら素数ではない
    if (this % i == 0) return false
  }
  return true
}



たまにはこんな内容でもいいですよね。笑

「リーダブルコード」を改めて読んでみて(その4)

「リーダブルコード」に関する記事の続きです。さくっと読み切れると思っていたのですが、何だかんだで1ヶ月以上かかりそうです…

今回の記事では第Ⅲ部の中の10章の内容に触れていきます。
本当は部単位で1つの記事にまとめようと思っていたのですが、10章はコードを実際に見て理解することが重要な内容であり、またコードの量も少し多めだったので、今回は分割して書くことにしました。

第Ⅲ部は「コードの再構成」というテーマで、10章では以下の点にフォーカスしていました。

  • 無関係の下位問題を抽出する

いよいよコードのリファクタリングの話へと進んでいきます。

続きを読む

「リーダブルコード」を改めて読んでみて(その3)

「リーダブルコード」に関する記事の続きです。ライブ出演前の練習や会社の開発合宿などでばたついており、間が空いてしまいました。

今回の記事では第Ⅱ部(7-9章)の内容に触れていきます。第Ⅱ部は「ループとロジックの単純化」というテーマで、以下の3点にフォーカスしていました。

  • 制御フローを読みやすくする方法
    • 条件式の引数の並び順
    • ネストを浅くする
  • 式を読みやすくする方法
    • 説明変数を使う
    • 要約変数を使う
    • 複雑な条件をシンプルにする
  • 変数を読みやすくする方法
    • 不要な変数を削除する

意識することが増えるとコードは読みづらくなるという旨の内容が言葉を変えて何度も登場しており、各章ではそれを減らすための方法について言及しています。

続きを読む

「リーダブルコード」を改めて読んでみて(その2)

前回の記事の続きです。前回の記事では1章の内容に触れ、書籍のタイトルにもなっている"リーダブル"なコードとはどういうものかについて書きました。

今回の記事では第Ⅰ部(2-6章)の内容に触れていきます。第Ⅰ部は「表面上の改善」というテーマで、以下の3点にフォーカスしていました。

  • "いい"名前の付け方
  • "美しい"コードの書き方
  • "価値のある"コメント


続きを読む

「リーダブルコード」を改めて読んでみて(その1)

前回の記事に明示的に書いてはいませんが、2019年の目標の1つとして「毎月1冊以上の技術書籍を読み、ブログにその内容をまとめる」ということをやっていく予定です。
(こういうのってネタバレ的な要素があってどこまで書いていいものかよく分かっていないので、あかん部分があればコメントいただけると嬉しいです)

書籍の選定理由

2019年最初の書籍として、プログラマー界隈では名著と呼ばれる「リーダブルコード」を選びました。五線譜が表紙にありますがアカペラ関連ではなくプログラミングに関する書籍です。笑
概要は以下のAmazonの商品ページにも記載されているので、ご存知ない方はそちらをご参照ください。
選定理由としては、最初から長すぎるものだとすぐ挫折しそうっていうのと笑(この書籍は231ページと、技術書籍の中ではかなり短い方だと思います)、コードを書いていて「変数・関数の命名とか、行いたい処理をシンプルに書くのってめっちゃ難しい」と感じることが昨年多く、その解決の糸口が見つかればいいなと思ったからです。


流し読み程度に1回読んだことはありましたが、明確な意思を持って読むと理解の度合いが違うなと早速感じています。またこのように文章としてアウトプットしていくことで、自分の言葉を交えて整理することも重要だと思っています。

ではここから、書籍の内容に入っていきます。肩慣らしの意味も込めて、今回の記事では1章の内容だけを取り上げます。1章は「理解しやすいコード」というタイトルです。

続きを読む

2018年の総括と2019年の抱負

みなさま(って言っても知人でこのブログを読んでいる人はほとんどいないかもしれませんが笑)、2018年もお世話になりました。

今年は自発的に自分を取り巻く環境を変えていけた良い部分と、自分のキャパシティを越えて頑張り過ぎて体調を崩してしまった悪い部分が同じくらいあり、自分の時間をどう使っていくかについて考えることの多い1年となりました。

来年は「健康第一」と「技術力の研鑽」を目標に、自分の体調ときちんと向き合って、自分のために多くの時間を投資できるようにしていきたいと思います。
抽象的な表現ではありますが、以下の3点を年間通じて大切にしていきたいと思います。

  • 何よりも体調管理を優先する
  • 自分で使える時間を増やす
  • 小さな単位から習慣化できることを増やす


では、2019年も引き続きよろしくお願いします。