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…

フローティングアプリを作るためのはじめの一歩

概要 Android で他アプリを実行中でも前面に表示されるアプリ(フローティングアプリ、Xperia のスモールアプリのようなもの)を作るため、 他アプリを実行中にビューを表示できることを確認します。 さらに、フローティングアプリの移動とタップが可能であ…

落ちないサービスでアプリの起動を監視する

概要 Android で落ちないサービスを作ろうとした時の記録です。 使用履歴を参照してアプリの起動を監視するサービスを作っています。 確認環境 Android Studio 2.1.2 Build Tools Version 24.0.1 Compile SDK Version 24 Target SDK Version 24 Min SDK Vers…

Spring Boot で Thymeleaf テンプレートを使う

概要 Hello World をブラウザで表示できることを確認できたので、 HTML 文書をブラウザで表示できるようにします。 HTML を表示する際には静的な HTML としてではなく、 動的に生成した HTML を表示するようにするため、 テンプレートエンジンを使用します。…

はじめての Sprint Boot in Kotlin

概要 Spring Boot での開発環境を構築する手順を説明します。 インストールから、ブラウザでページに Hello World を表示させるまでの手順です。 開発言語には Kotlin、ビルドツールには Gradle を使います。 確認環境 IntelliJ IDEA COMMUNITY 2016.2 Sprin…

アプリ内課金をする

概要 Android でアプリ内課金を行う方法についての要約です。詳しい内容は参考情報のページに書かれているので、全体を大まかに説明します。 確認環境 Android Studio 2.1.2 Build Tools Version 24.0.1 Compile SDK Version 23 Target SDK Version 23 実行…

SDカードにファイルを作成して書き込む

概要 Android で SD カードにデータを書き込む方法です。Android 6.0 以降では、権限設定に変更があります。 確認環境 Android Studio 2.1.2 Build Tools Version 24.0.1 Compile SDK Version 23 Target SDK Version 23 実行環境 Sony SOV32 Android 6.0, AP…

メモリリークを解決する

概要 Android で発生しているメモリリーク (Memory Leak) の解決方法です。RecyclerView を使用していて発生するメモリリークを解決した例です。 確認環境 Android Studio 2.1.2 Compile SDK Version 22 Build Tools Version 22.0.1 実行環境 Sony SOV32 And…

ViewPagerで右スクロールを禁止して、左スクロールだけにする

概要 ViewPager を使用して複数の Fragment を横スクロールで切り替える時、右スクロールは禁止して、左スクロール(戻る)のみを有効にする方法です。 確認環境 Compile SDK Version 22 Build Tools Version 22.0.1 実行環境 Sony SOV32 Android 6.0, API 23 …

DialogFragment を Back で戻ると InputEventReceiver で警告が出る

概要 DialogFragment を使用した 時に、Back ボタンで DialogFragment を閉じると W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed. と表示される件の対処方法です。(2016.7.8現在、未解…

RecyclerView を使用した Fragment で Back した時にスクロール位置を保存する方法

概要 複数の Fragment を replace で遷移します。 遷移元の Fragment (Aと呼ぶ) では RecyclerView を使用しており、スクロールした状態で次の Fragment (Bと呼ぶ) に移動します。 B から Back ボタンで、A に戻った際にスクロール位置を保存する方法です。 …

DialogFragment

DialogFragment を試したメモ。 SeekDialogFragment.kt companion object の show メソッドはなくても構わないユーティリティメソッドです。Fragment を生成して表示します。 onAttach → onCreateDialog の順に実行されます。Activity が Listener を実装し…

let と as でスッキリ

Kotlin メモ。 as を使ったキャストはスマートなのだけど、変数を使わざるをえなくなる。 val view = view.findViewById(R.id.picker) as NumberPicker // as に続けて書けないよね? view.minValue = 0 view.maxValue = 100 view.setOnValueChangedListener…

Google OAuth で認証できるところまで動かしてみた(後編)

はじめに 前編では、Android Studio にプロジェクトを作成して、 backend モジュールを動かすところまでを書きました。 Google OAuth で認証できるところまで動かしてみた(前編) - NOSIX後編では、Google の OAuth を利用して認証するところまで書きます。…

Google OAuth で認証できるところまで動かしてみた(前編)

はじめに Kotlin Advent Calendar 2015 - Adventar に素敵な記事 アプリからサーバまで全部Kotlinなお手軽サービス開発 #ktac2015 - Qiita が掲載されておりまして、試してみました。Kotlin と Android Studio は全くの素人です。GAE (Google App Engine) は…