JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
継承 継承とオーバーライドを可能にするには、open修飾子を使う必要がある メソッドをオーバーライドするにはoverrideを使う オーバーライドを強制するためには抽象クラスと抽象メソッドを用いる 抽象メソッドとは派生クラスでのオーバーライドを強制するメソッドのこと 抽象クラスとは抽象メソッドを定義できるクラスのこと open class Person (var lastName: String, var fistName: String, var age: Int) { open fun introduction() { println("Name ${fistName} $…
こんにちは!こーたろーです。 いま、技術ブログの記事のためのプログラムを動かしているのですが、実行に時間がかかっているため、コラム書きます。 今日の記事はこちらです。 news.yahoo.co.jp やるなら今!プログラミング副業〜独学で稼ぐ入門書〜: 転職やフリーランスを目指す初心者のための教科書
はじめに KotlinでAndroidアプリ開発をやってみたいと思います。 プログラマーではなく遊びでやってるのでコードはテキトーです。 とりあえず動けばいいやといった感じです。目次 はじめに AndroidStudioの起動 新規プロジェクトの立上げ 画面の構成 AndroidStudioの起動 AndroidStudioを起動させてみます。デスクトップにあるショートカットから開いてみましょう。 もしない場合は、下記のフォルダに「studio64.exe」があると思います。 C:\Program Files\Android\Android Studio\bin起動画面新規プロジェクトを立ち上…
クラスの基本 Kotlinでクラスを定義するには以下のように書く class User { var lastName = "" var fistName = "" var age = 0 fun introduction() { println("Name ${fistName} ${lastName}です。${age}さい") } } fun main() { val user = User() user.lastName = "山田" user.fistName = "太郎" user.age = 44 user.introduction() } アクセス修飾子 修飾子 概要 public…
関数 関数を定義するにはfunを使用する。構文は下記のように記載する //関数の定義 fun 関数名 (仮引数: 引数の型,...): 戻り値の型 {処理} //関数の呼び出し 関数名(実引数,...) 例 フルネームを返す関数 fun getFullName (fistName: String, LastName: String): String { return LastName + fistName } println(getFullName("太郎", "山田")) >> 山田太郎 仮引数と戻り値の型宣言は必須である。戻り値がない場合は戻り値の型として、Unitを指定するが、Unit型…
はじめに 前回から少しづつkotlinを覚えているので、そのメモの続き px-wing.hatenablog.com 配列とコレクション Kotlinで複数の要素をまとめて扱うには、Javaと同様に配列とコレクションを用いる 配列と代表的なコレクション(List・Set・Map)は以下のような特徴がある 配列 最もシンプルな複数の要素を扱う仕組みだが、宣言の段階でサイズを決める必要があるなど柔軟性に欠ける List 配列と同様に複数の要素を扱うことができる、インデックスを指定して値を取得・設定ができる Set Listと似ているが重複した要素は登録しないので、重複のない複数の要素を扱うことが出…
kotlin playground playgroundで試し実行ができるのが便利 https://play.kotlinlang.org/ 変数の宣言 var 変数名: 変数の型 = 初期値 型 概要 Double 64bit浮動小数点数型 Float 32bit浮動小数点数型 Long 64bit整数型 Int 32bit整数型 Short 16bit整数型 Byte 8bit整数型 Boolean 真偽値 Char 文字型 String 文字列型` 型を省略するとこともできる。型推定・型推論してくれている var number = 10 var str = "テスト" var…
今回はタイトルの通り、Kotlin でちょろっと正規表現を行ったのでそのメモです。 結論 Kotlin ではこんな感じで行える見たいですね。正規表現を """ で囲むことで、エスケープが必要にならないのでシンプルに記述することができます。 val pattern = """"^[A-Za-z0-9.-]{3,16}$""" if (Regex(pattern).matches(id)) { // 全ての文字列が正規表現の指定通り } else { // 文字列が正規表現の指定通りではない } 上記の場合は、id 文字列全体が正規表現と一致した場合に true となりますが、一部でもマッチした場…
RxKotlin で実行する Observable のスレッドをどのように切り替えるのか調査したので、調べた内容を簡単にまとめておこうかと思います🦅 それではやっていく まずは、Android プラットフォーム上のメインスレッドで処理を実行できるようにしてみます。Android 固有のスレッドを使用するため iOS における RxCocoa のように、RxAndroid というバイナリが必要になるので依存関係を追加します。 implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' ※ 執筆時点では 3.0.0 が最新でした。詳しくはこちらをご参…
kotlinにはレシーバー付きラムダというものがあります。 使い方はこんな感じです。 // レシーバー付きラムダの定義 val lambda: Int.() -> Unit = { print(this) } // 実行 fun main() { 1.lambda() } // 出力 // => 1 Int.() -> Unitのような型は、kotlinのドキュメントではFunction types with receiver(レシーバー付き関数型)、kotlinインアクションでは拡張関数型と記述されていました。(以降レシーバー付き関数型) 通常の関数型は(Int) -> Stringのように…
Text の変更を取得しようと下記のよう、Listener を追加すると謎のエラーが発生しました。 binding.accountNameInputTextField.addTextChangedListener { println(it.toString()) } // Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. 解決法 アプリレベルの Gradle ファイルに jvmTarget を指定することで解決できました。 kotlinO…
絶賛個人開発中のアプリで Clean Architecture を採用していて、DI(Dependency Injection) Framework の Koin を使う機会があったので、その使用方法をメモ程度に残しておきたいと思います🏃🏻♂️ github.com それではやっていく まずは、App レベルの build.gradle の dependencies に下記を追加します。この記事執筆時点では、バージョン 2.2.2 が安定版でした。 implementation "org.koin:koin-android:2.2.2" 次にカスタムの Application クラスを作成し…
本日はタイトルの通り、Android で View の background リソースをアニメーションさせながら変更する方法を紹介したいと思います👩🌾 それではやっていく まずは、アニメーションの初期状態の drawable とアニメーション後の drawable をそれぞれ定義しておきます。今回は border_radius_12dp.xml という drawable ファイルを初期値として border_green_radius_12dp というファイルをアニメーション後の値として定義しました。 次に上記で作成したファイルを使用して、アニメーションのための drawable を下記のよう…
今週は第49回を開催しました。引き続きKotlin Hands-onをすすめています。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第49回の様子] [学んだことや疑問点] [まとめ]
今回は、以前の「カスタムビューの作成」に引き続き、カスタムビューでカスタム属性を追加・適用する方法をメモ程度に残しておきます👷♀️ それではやっていく まずは、カスタム属性を定義するための xml を res/values 配下に attrs_account_type_select.xml というファイルを作成します(ファイル名は適宜変更してください)。 ファイルの中身は下記のように定義しました。<attr> タグでカスタム属性を定義します。name には属性の名前を、format には属性の値を設定します。 <?xml version="1.0" encoding="utf-8"?> <r…
kenics(けにっくす)(🐦) ツイートURL:https://twitter.com/106270042/status/1364578048285138955 ツイート:最近はもう microまで打つと、その後は:bit だよなぁ 前はsoftだけだったけど #micro:bit #microsoft 羽月(🐦) ツイートURL:https://twitter.com/47072912/status/1364564899813232642 ツイート:@7dan @bepal_staff すみません、30秒で消えるのは把握してなかったのでwなんでしょうね、人感センサーの感度の問題だとビニール…
こんにちは!Sansan事業部 プロダクト開発部のふるしんです。私は大阪のオフィスでSansanプロダクトのAndroidアプリの開発に従事しています。 play.google.comこの記事では、連載として2020年 9月 2日に1.0.0-alpha01として公開されたJetpack DataStoreについて解説していきます。 developer.android.com
概要 Expectedは左なのか右なのか。 言語によって使い分けたいのでザックリ調べてみました。 Assert.Equal とは 言語によって細かい仕様は異なると思いますが、 引数に2つの値を取り、その値がマッチしているかをチェックする関数です。 その2つの値をよく、ExpectedとActualと表記しますが、言語によって左右が異なるので調べてみました。 右 Node.js https://nodejs.org/api/assert.html どちらかというと右 Document には明確に記述がないですが、Example が暗に意味しているものです。 Python https://docs…
robo8080(🐦) ツイートURL:https://twitter.com/156537915/status/1364275139018326019 ツイート:RT @robo8080: 以前、micro:bit + MicroPython で Grove I2C motor driver を動かしたやつ。#M5StickV でも動くかな🤔 #M5Stack https://t.co/G5AfKKVmK3 とるねぃど(🐦) ツイートURL:https://twitter.com/272381583/status/1364234273926963207 ツイート:@sadamoto_yuki…
こんにちは、kokoaです。 このブログではプログラミングについて解説しているのでぜひ見ていってください。 プログラミング言語には二種類あって 目に見える部分に動きをつけるフロントエンド言語、目に見えない部分で動くサーバーサイド言語の二つに分けられます フロントエンド言語の解説からします。フロントエンド言語にはJavaScript,TypeScriptがあります 動きを作るといっても想像しずらいと思いますがここのボタンにカーソルを合わせるとボタンが膨らむなどです TypeScriptはJavaScriptを改良したものです (文字などを装飾する言語はHTML&CSSですがここでは割愛します) …
Bobby Summers(🐦) ツイートURL:https://twitter.com/927829929923813400/status/1363887479284244481 ツイート:スイッチエデュケーション(Switch Education) の スイッチエデュケーション プログラミング・フォロ for micro:bit [micro:bit(マイクロビット)] 5482 https://t.co/w2gRFpx2lf #タイムセール RSコンポーネンツ (送料450円。6千円超で無料)(🐦) ツイートURL:https://twitter.com/132054306/status…
Try KotlinでProgram argumentsという任意の文字を入力できる欄があるようです。私はVS codeを使っているため、この任意の文字を入力できる欄が何なのか、わかりませんでした。 色々調べた結果、このProgram argumentsはターミナルで実行しようとしているjarファイルの引数ということがわかりました。まずターミナルは以下のような表示になっていると思います。 PS C:\XXXXX\YYYY> たとえばzzz.jarファイルを実行するためには以下のように入力します。 PS C:\XXXXX\YYYY>kotlin zzz.jar 引数とはこのzzz.jarのあとに…
こんにちは、モバイルクライアントグループの隅山です。 前回は両OS開発についてのブログを書きましたが、今回はDropboxのStoreを用いてAndroidアプリの通信量を削減した話をしていきます。 Storeについて 導入について 導入方法 導入解説 メリット・デメリット まとめ Storeについて まず、DropboxのStoreとはアプリ内のデータ操作(取得、共有、保存、検索)を簡素化するライブラリです。 ネットワーク経由でデータをいつ取得するか、メモリとディスクのどっちにキャッシュするか、データをKotlinのFlowで返却するかなどを簡単に実装することができます。 最近ではネットワー…
[Podcast] [つくりおき] [今週のいいこと3つ] [各種タスク] [読書] [ソフトウェア開発] [囲碁] [まとめ]
背景 調べた内容 ダックタイピングとは Goのinterfaceがなんでわからなかったか なんとなくわかったのでコードを書いてみる 感想 参考資料 背景 最近Goに入門したんだけれど、JavaやKotlinなどを主に書いていた自分にとってGoのinterfaceはなかなかしっくり来なかったので調べた。 調べた内容 ダックタイピングとは Rubyなどの動的型付け言語でよく用いられる型付けの作法。 ダック・タイピング - Wikipedia もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである。 というのは確かにしっくり来る説明だと思う。 Goのinterfaceがなんでわ…
Goon Gaming Esports(🐦) ツイートURL:https://twitter.com/1269097113058570200/status/1363553517336551424 ツイート:RT @yoheisakaidani: 今日は、金沢市でぷよぷよeスポーツ大会を開催していますが、会場の別フロアでは同じく金沢市主催のキッズプログラミング教室が開催されており、そこではオリジナルで考えられた“micro:bitを使ってぷよぷよのコントローラを作るコーナー”も。大… eスポーツおねえさん(🐦) ツイートURL:https://twitter.com/12265338444188…
ども。LDI品質管理部の仙波です。 スマホアプリの自動テストを担当しています。最近は基本的にリモートワークですが、気分転換に商店街まで散歩してたい焼きを買って帰るのが楽しみです。 前回はXPathを使って画面要素を柔軟に取得する方法を紹介しました。 その際、XPathの使用は他の方法に比べてパフォーマンスに問題があるという通説があることに触れました。問題があるっていうけど、どれくらいインパクトがある話なの?と言われると自分でも明確に説明できないことに気づいたので、今回は簡単なパフォーマンス計測用のコードを作成し、どれくらい遅いのか計測してみました。 パフォーマンス計測(Androidの場合) …
VS codeでKotlinを練習し始めたのですが、ターミナルの日本語表示がどうもうまくいかないのでいろいろ試した結果、Settings.jsonの設定を以下のようにするとうまくいくことがわかりました。 ポイントはchcpの下行の932です。よく95001に設定するという書き込みが見られますが、932で試すとうまくいきました。お試しあれ。 { "editor.renderControlCharacters": true, "files.autoSave": "afterDelay", "terminal.integrated.shellArgs.windows": [ "-NoExit", "…