Kotlinで継承可能なクラスを定義するには

最近業務でもKotlinに触れる機会が多いです。
コードを書く時に通常のクラスを定義する事が多くて、継承可能なクラスを書くことがあまりないので、Kotlinで継承可能なクラスにする場合のメモ。

class ParentActivity : AppCompatActivity() {
        ....実装
}

上記のようなクラスを元に、各クラスを定義しようとすると、ビルドエラーになります。
理由はfinal Classとして扱われるから。
継承可能なクラスにしたい場合は、以下のように open と付ける必要がありました。

open class ParentActivity : AppCompatActivity() {
        ....実装
}

けど、これだと警告が取り除けない。Javaのときにはなかった変更点として、抽象クラスならきちんと abstract classとして宣言が必要でした。

abstract class ParentActivity : AppCompatActivity() {
        ....実装
}

こうすると、明示していなくても open扱いとなる模様。
Kotlin奥が深いです。

ボタンなどのクリックイベント制御の挙動

ボタンなどのViewにはクリックイベントを設定することができます。
クリックイベントにも2種類ほどあって、
– クリックイベント(1回)
– 長押しイベント(長押し)
で、ユーザーに求めるアクションを選べるようになっています。

このイベント、OS内では呼び出し順序が決められており、
①長押しイベント
②クリックイベント
の順にコールバックメソッドが呼び出されるようになっています。

長押しイベント後にクリックイベントを呼び出さないようにするには、長押しのときの呼び出されるonLongClickメソッドで、
戻り値をtrueにすればOKです。

@Override
public boolean onLongClick(View view) {
    return true;
}

ここをfalseにしてやると、長押しのonLongClickメソッドが呼び出された後、クリックのonClickメソッドが呼び出されます。
あまり意識することはないと思いますが、一つの知見ということでまとめときます。

記事の最新化に最適な手段を考える

先日からライブラリの使い方を紹介した記事を投稿するようにしていますが、目下の悩みとして、
既に公開した記事は時と共に陳腐化していき、記事としての鮮度が落ちてしまうことでした。

ライブラリはバージョンアップしていきますので、最新版では紹介したメソッドがdeprecatedとなって使えなくなることもしばしば起こり得ることです。
ここを解決できそうな方法を見つけたので、考えを纏めておきたいと思います。

“記事の最新化に最適な手段を考える” の続きを読む

Android-Rateでレビューを促す

朝の投稿でも書きましたが、アプリをリリースすると、その後はGoogle Play Store上でレビューを上げていくこともアプリの露出を増やすための一環として行われることになります。
よく見かけるアプリだと、レビューを利用ユーザーに促すダイアログがよく見られると思うのですが、アプリ起動時に毎回出ているとユーザーさんもうんざりしますし、
出すタイミングは負担にならないように微調整をしていきたいものです。
今回はそんな細かいところまで眼が行き届いたライブラリ「Android-Rate」を試してみました。

“Android-Rateでレビューを促す” の続きを読む

レビューを促すライブラリを探す旅

アプリのレビューを促して、露出を増やすのはよくやる手かと思います。
それほど難しい実装でもないので、独自で作ってしまえば良いのですが、ライブラリで良さげなものがないか時間を見ては探すようにしています。

最近@hotchemiさんのAndroid-Rateというライブラリのことを知ったので、近日中に試してみてブログでまとめたいと思います。

Hugoでログの出力をしてみる

Androidでデバッグするときには、Logクラスを用いてログを出力することが一般的です。
以前は私もログの出力をLogクラスに頼っていたのですが、最近はちょっと使い勝手が悪く感じる様になってきたので、Hugoというライブラリを使うようになっています。
仕事で知ってからではありますが、これはいいなと思うので紹介します。

“Hugoでログの出力をしてみる” の続きを読む

Google Playサービスのバーコード検出を試してみました

昨日「バーコードを読み込むZXingライブラリを試しました」という記事を公開しました。
すると、@fkmさんから「こちらの記事も期待してます!」と以下のリンク先を連絡いただきました。

ZXingライブラリではなくこちらも試してみたまえ・・・とのことなので、昨夜の内にサンプルを作って試すところまではできたので、その辺をまとめておきたいと思います。

“Google Playサービスのバーコード検出を試してみました” の続きを読む

バーコードを読み込むZXingライブラリを試しました

手持ちの書籍のバーコード情報を取得したいと思って、ライブラリを探してみました。
前々からZXingというライブラリが存在することは知っていたのですが、Eclipse時代からプロジェクト内に取り込むやり方が主流だったので、他のがないかなと思ってました。
しかし、最近調べたところ有志の方が本家からポーティングしてGradleで組み込めるようにライブラリを公開してくださっているようです。
今回はこちらを調べた結果をまとめて公開したいと思います。

“バーコードを読み込むZXingライブラリを試しました” の続きを読む

SuperToastをもう少し掘り下げる

昨日の記事「Toastを強化したSuperToastを試してみた」で、SuperToastを使ってToastを表示するところまで試したわけですが、それだけだとどんなことができるのか、詳細はまだわからずじまいです。
そのため、今日はそれぞれのメソッドでどのような指定が可能なのかについてまとめてしまいたいと思います。

“SuperToastをもう少し掘り下げる” の続きを読む

Toastを強化したSuperToastを試してみた

今日は前々から気になっていたSuperToastを試してみました。

SuperToasts – https://github.com/JohnPersano/SuperToasts

当初予想していたのと少し違って、実は3つのToastが用意されているようです。

  • SuperToast
  • SuperActivityToast
  • SuperCardToast

ライブラリ名がSuperToast”s”と、複数形となっていたのはそういった理由があるようですね。
今日試したのは1番目のSuperToastです。
では、設定方法からみていきましょう。

“Toastを強化したSuperToastを試してみた” の続きを読む