Kotlin

Kotlin コーディング規約

概要 Kotlin コーディング規約から個人的に忘れそうな部分を抜き出した備忘録です。 ここに記載されている以外の内容も有益なので原文の参照をおすすめします。 目次 概要 目次 参考情報 備忘録 Source code organization Source file organization Class …

Android Studio のログにソースコードへのリンクを表示する

概要 Android Studio のログ出力にソースコードへのリンクを表示する方法です。 目次 概要 目次 確認環境 参考情報 解説 確認環境 AndroidStudio 3.5.2 Kotlin 1.3.50 参考情報 logging - How can we print line numbers to the log in java - Stack Overflo…

Room の使い方

概要 Android Kotlin Fundamentals 06.1 (Room) の備忘録です。ポイントとなるコードのみを抜粋しています。 目次 概要 目次 確認環境 参考情報 解説 build.gradle app/build.gradle SleepNight.kt SleepDatabaseDao.kt SleepDatabase.kt SleepDatabaseTest.…

Navigation component の使い方

概要 Android Kotlin Fundamentals 03.x (Fragment と Navigation) の備忘録です。ポイントとなるコードのみを抜粋しています。 目次 概要 目次 確認環境 参考情報 解説 build.gradle app/build.gradle activity_main.xml navigation.xml navdrawer_menu.xml…

Android でメールを送信する

概要 メールクライアントアプリを使わずに、自身が開発したアプリでメールを送信する方法です。Google のサービスを使ってメールを送信します。1つの方法は Gmail の SMTP を使い、もう1つの方法は Google API の Gmail サービスを使います。 目次 概要 目…

RecyclerView の各項目で、スライドしてメニューを表示する

概要 以下の動画の様に、RecyclerView の各項目で、スライドしたときにメニューを表示させる方法です。他のライブラリを導入せずに、ItemTouchHelper クラスを使って実現します。 サンプルでは削除ボタンしかありませんが、複数のボタンを設定できます。また…

Spring WebFlux で InMemoryWebSessionStore にセッションタイムアウトを設定する

概要 Spring WebFlux を使いながら application.properties で spring.session.timeout を設定した際、設定が効きませんでした。WebFlux の WebSessionStore をカスタマイズして、セッションタイムアウトの間隔を設定する方法を説明します。 目次 概要 目次 …

Spring WebFlux で Spring Security と CORS WebFilter を併せて使う

概要 Spring WebFlux を使う際に、CORS を有効にする方法と認証/認可を有効にする方法を下記の記事で説明しました。しかし、この 2 つの内容を併せて適用すると、CORS が期待通りに機能しません。原因は、WebFilter の実行順にあります。この記事では、WebFi…

Spring WebFlux で Spring Security の認証と認可を使う

概要 Spring Security を使う場合、Spring WebFlux と Spring MVC では仕組みが異なっています。このため、Spring MVC と併せて使う場合のカスタマイズ方法と Spring WebFlux と併せて使う場合のカスタマイズ方法も異なります。Spring Security を Spring We…

Spring WebFlux で開発した REST API を Swagger Editor から実行するために CORS を有効にする

概要 Swagger Editor の Try it out から REST API を実行できる様にするために、Spring の設定を変更して CORS を有効にする方法を説明します。但し、Spring MVC ではなく、Spring WebFlux を使う場合の方法です。コードは Kotlin で書かれています。 目次 …

kotlin-frontend-plugin のソースコードを読んで要約してみた

概要 以下の記事の続きです。以下の記事では、ソースコードの内容をクラス単位で整理しました。 クラス単位では全体像が見えづらいため、図とリストを使って全体を要約します。 nosix.hatenablog.com 目次 概要 目次 確認環境 解説 タスクの依存関係 データ…

kotlin-frontend-plugin のソースコードを読んでみた

概要 kotlin-frontend-plugin は Kotlin/JS を用いてのフロントエンド開発を助ける Gradle プラグインです。 node.js を使うようになっており、webpack, karma などの node.js ライブラリを使った開発を助けます。 Kotlin の公式プラグインですが、現在は EA…

ts2kt を Gradle で実行する

概要 TypeScript の型定義を Kotlin ファイルに変換する Node.js スクリプトである ts2kt を Gradle で実行できるようにします。 2017/8/31 現在、ts2kt は使える状態ではありません。 生成された Kotlin ファイルでは多数のエラーが発生します。 目次 概要 …

Kotlin/JS TIPS - this の扱い

概要 JavaScript の関数中の this は関数を保持しているオブジェクトによって決定されます。 この振る舞いが Kotlin/JS を使う上での問題になります。 this を扱ういくつかの方法を説明します。 最適な方法とは言えないので、より良い方法があれば教えてくだ…

Kotlin/JS TIPS - JavaScript ライブラリへの型情報の付与

概要 JavaScript ライブラリを使用する際に、型情報を付与する方法について説明します。 前回の記事で JavaScript ライブラリの使用方法を説明しましたが、 静的型付けによる恩恵を得ずに JavaScript の柔軟性を重視した使用方法としていました。 型情報を付…

Kotlin/JS で JavaScript ライブラリを使用する

概要 Kotlin/JS から JavaScript ライブラリを使用する方法を説明します。 AMD に対応している JavaScript ライブラリを前提としています。 例として Lodash, Vue.js を使います。 作成するコードでは型付けは弱いままとして、JavaScript の柔軟性を活かした…

Gradle で Kotlin/JS ライブラリを開発する

概要 Gradle を使用して Kotlin/JS の開発環境を構築し、Hello World を作成します。 更に、ライブラリとして配布可能にする方法、そのライブラリを使用する方法を説明します。 JavaScript のライブラリを使用する方法は別の記事で説明します。 なお、筆者は…

libGDX 2D UI Library - Widgets

概要 libGDX の 2D UI Library のうち、Button 系以外の Widget についてまとめます。 目次 概要 目次 確認環境 参考情報 解説 Image Label TextField TextArea List SelectBox ProgressBar Slider 確認環境 OS X El Capitan (10.11.6) Xcode 8.0 Android St…

Thymeleaf snippet

概要 Thymeleaf の書き方を学習するために、チュートリアルの内容を一通り書いてみました。 その記録です。 確認環境 IntelliJ IDEA COMMUNITY 2016.3 Spring Boot 1.4.2 Thymeleaf 2.1.5 参考情報 Tutorial: Using Thymeleaf (ja) Thymeleaf の使い方。日本…

libGDX 2D UI Library - Widget (Button)

概要 libGDX の 2D UI Library のうち、Button 系 Widget についてまとめます。 目次 概要 目次 確認環境 参考情報 解説 Button ImageButton TextButton CheckBox 確認環境 OS X El Capitan (10.11.6) Xcode 8.0 Android Studio 2.2.2 Multi-OS Engine Plugi…

libGDX Scene2d の基礎

概要 libGDX で 2D UI Widget (Button, Label, CheckBox, etc.) を使用するための基礎となる Stage, Viewport, Layout についてまとめます。 (ゲームライブラリとしてではなく、マルチプラットフォームの GUI ライブラリとしての使用を模索中です。) 確認環…

libGDX アプリケーションのライフサイクル

概要 libGDX アプリケーションのライフサイクルの説明です。 言語は Kotlin、Android/iOS アプリで動作確認をしています。 確認環境 OS X El Capitan (10.11.6) Xcode 8.0 Android Studio 2.2.2 Multi-OS Engine Plugin 1.2.1 Kotlin 1.0.4 buildToolVersion…

libGDX ロギング

概要 libGDX のロギング機能の使い方です。Android/iOS アプリで動作確認をしています。 確認環境 OS X El Capitan (10.11.6) Xcode 8.0 Android Studio 2.2.2 Multi-OS Engine Plugin 1.2.1 Kotlin 1.0.4 buildToolVersion 25.0.0 compileSdkVersion 24 lib…

Kotlin で iOS アプリを作る (libGDX 編)

概要 Intel Multi-OS Engine を使うことにより Android Studio で iOS アプリを作成できます。 しかし、UI 部分は各 OS によってライブラリが異なるため、共通化できる部分は限られます。 そこで、ゲーム用フレームワーク libGDX を使って描画の共通化を計り…

Kotlin で iOS アプリを作る

概要 Kotlin で iOS アプリを作成します。 開発環境には Android Studio を使用し、Intel Multi-OS Engine を使って iOS アプリに変換して実行します。 確認環境 OS X El Capitan (10.11.6) Xcode 8.0 Android Studio 2.2.2 Multi-OS Engine Plugin 1.2.1 Ko…

インテント (Intent) とインテントフィルタ (intent-filter)

概要 Android の基礎的な仕組みである Intent について整理します。 下記のページの内容を私なりに整理したものです。 developer.android.com 解説 コンポーネント Intent はコンポーネント間の通知に使われる。 Intent の日本語訳は、意図や意思。 Intent …

Android で SQLite を使う

概要 Android で SQLite を使う方法です。 サンプルにはデータの参照、挿入、トランザクションを含みます。 参考情報 Android データを簡単に保存する方法(SQLite編) | TechBooster データの参照と挿入 SQLiteでトランザクション処理とロールバック - Androi…

ADB (Android Debug Bridge) のプロトコル 後編

概要 ADB の Java クライアントを試作してみようと取り組んでみたら深みにはまっていったお話。 とても長いので前後編に分けました。 雑談 nosix.hatenablog.com 幸せになれたと思ったのに コマンドを実行できるようになった。 しかし、再度接続を試みる際に…

ADB (Android Debug Bridge) のプロトコル 前編

概要 ADB の Java クライアントを試作してみようと取り組んでみたら深みにはまっていったお話。 とても長いので前後編に分けました。 雑談 USB ケーブルがなくっても使える ADB ADB (Android Debug Bridge) は Android アプリ開発者にとってはおなじみのツー…

画面のスナップショットを撮影する

概要 Android で画面のスナップショットを撮影するアプリを作ります。 他のアプリが起動しているときにスナップショットを撮影するために、サービス経由でスナップショット撮影を行います。 確認環境 Android Studio 2.1.2 Build Tools Version 24.0.1 Compi…