JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
アプリビルド時に以下のエラーが発生。 文を読む限り、gradleファイルに記載しているバージョン番号が見つからないよということらしい・・・Could not find android.arch.navigation:navigation-fragment-ktx:2.5.3. Required by: project :app Search in build.gradle filesとりあえず最新版を適用すればいいかと思い「android.arch.navigation:navigation-fragment-ktx」でググって出てくるページで案内されたバージョン番号に書き換たが直らず。 上記…
アプリのビルド時に下記エラーが出ました。 minimum supported gradle version is 6.7.1. current version is 6.5. ググると、distributionUrlの値を6.7.1にしろという方法がありましたが、 修正してTry Againしても解決せず・・・ 試行錯誤して、一度AndroidStudioを閉じて、起動し直したら無事反映されたようで、ビルドできました。 Try Againは罠だった。
概要 入力フォームを Spring Web MVC の Annotation Controllers で実装しているときに、 @ModelAttribute と @SessionAttributes を使ったところ、すんなりと上手くいかない部分がありました。 そこで、起きた問題と解決策を記事に書きました。 前提 Java 17 Kotlin 1.7 Spring Boot 3.0 プロジェクトを作るときに spring-boot-starter-web と spring-boot-starter-thymeleaf を依存ライブラリとして追加しました。 結論 @SessionAttribute…
これはなに? Androidで画面遷移するための知識整理・Tips IntentとActivityによる起動のみです 公式サイトもある程度参照してます Fragmentとかの話はまた別途... こちらの本の第7章「画面遷移とIntentクラス」の内容を自分なりに整理した内容となります。 (+α) 起動ロジックは呼び出される側においた方が良くね?という話 目次 これはなに? 目次 Androidの画面遷移は"遷移"ではない 新画面作るのに必要なもの・手順 layout用xml Activityクラス AndroidManifest.xml Intent 起動ロジックは呼び出される側に閉じた方がい…
ドーモ、jollyjoesterです🙏 これはSwiftKotlin愛好会アドベントカレンダー 2022の25日目の記事です。 今年Swift愛好会は7周年、Kotlin愛好会は4周年を迎えました👏 そんな愛好会の1年間の振り返りをお伝えします。 SwiftKotlin愛好会とは? レベル、経験等不問で、Swift/Kotlinが好きな人が集まってわいわい楽しむ会です。 Swift愛好会 Kotlin愛好会 基本的にSwift愛好会、Kotlin愛好会、SwiftKotlin合同開催のいずれかを月1回開催するようにしています。 2015年11月に初回を開催して以降、Swift愛好会はこれまで7…
この記事はSpring Advent Calendar 2022の20日目の記事になりました。 qiita.com 前書き こんにちは、justInCaseTechnorogiesでバックエンドエンジニアをしている宮田です。 弊チームでは、Spring WebFlux(Kotlin Coroutines) x R2DBCのマルチモジュールプロジェクトで、Row Level Securityを有効にし、かつ効率的に開発を行うための基盤を作成しました。 この記事ではその中で得た知見についてまとめます。 技術スタック PostgreSQL 13 SpringBoot 2.7.3 Kotlin 1.7…
システム開発部アプリケーションエンジニアの工藤です。 今回は、マイクロアドのWebアプリ開発における社内標準化の動きとその策定内容について、簡単に紹介したいと思います。 課題 同好会の立ち上げ 策定内容 Vueの自動テストフレームワーク タイポグラフィー Javaのスタイルガイド Kotlinのスタイルガイド 策定する際の試行錯誤 採用基準 検討・導入コストを下げるための施策 効率的に進めるために 今後の展望 募集 課題 Webアプリプロダクトに注力する機会があることで、チーム内・外のメンバーが様々なWebアプリプロダクトに触れることが度々あります。 その際、そのプロダクトの立ち上げ時期が大き…
この記事はエムスリー Advent Calendar 2022 12日目の記事です。 エンジニアの星川 (id:oboenikui) です。以前はAndroidアプリを書いてましたが、現在はサーバーサイドKotlinを書いています。 Kotlinといえば、Kotlin Festが12/10にありましたがご覧になったでしょうか? 弊社はひよこスポンサーで協賛しており、また私自身は運営スタッフとして参加しました。 まだご覧になっていない方は、アーカイブをぜひご覧ください。 閑話休題、Kotlinを開発しているJetBrains社が、最近Pythonの人気ライブラリやツールを意識したKotlinライ…
ExposedのDAO APIを使って次のようなモデルを定義してみる。 object Posts : UUIDTable() { val text = varchar("text", 144) val createdAt = datetime("created_at") } class Post(id: EntityID<UUID>) : UUIDEntity(id) { companion object : UUIDEntityClass<Post>(Posts) var text by Posts.text var createdAt by Posts.createdAt } この時ページ…
「Swift/Kotlin愛好会 Advent Calendar 2022」の枠が空いていたので急遽書いてみました。 qiita.com GitHubでは、画像のように、リポジトリ内の言語割合をカラフルに表示してくれます(画像はKotlinリポジトリより)。 この表示でのKotlinは紫っぽい色ですが、1年半ほど前まではオレンジっぽい色だったことをご存じでしょうか? 変更の経緯 この変更はZacSweersさんからの提案で行われました。 Zacさんはsquare/moshiのメンテナでもある超強いエンジニアです。 この件への最初の言及はこちらのツイートだったと記憶しています。 Can we t…
更新日時 2023/02/03/07:07 Qiita Trends Daily 1位 ※前日1位 初心者,React,コンポーネント,新人プログラマ応援 Qiita Trends Daily 2位 [New] GoogleAppsScript,Line,YouTube,linebot,googleform Qiita Trends Daily 3位 ※前日5位 Python,Twitter,自然言語処理,データセット,bert Qiita Trends Daily 4位 [New] C# Qiita Trends Daily 5位 ※前日6位 MySQL,SQL,初心者,スロークエリ Qii…
2023年2月2日になりました。今年は残り333日です。あと91.2%です。— 今年の残り日数 (@remaining_days) 2023年2月1日 ということで、2月2日で今年の8.8%が終了した。明日になればちょうど9%が終わる(有効桁数3桁の場合)。 それだけの時間がたったなら、今年の目標の達成率も9%くらいはいっていてほしいものである。 ということで、それをチェックしてみよう。 たぶん、はてなブログ界でトップクラスに早い2023年振り返り記事だと思う。 shatsutosokks.hatenadiary.com 今年の目標は 日記(このブログ)を毎日更新する 語学系の資格を追加で3個…
TOC なぜ Go 言語で CLI ツールを作るのか 作り方 サブコマンドを取らない場合 サブコマンドを取る場合 cobra の使用例 urfave/cli 実際にやってみる setup 初期化 サブコマンドの追加 注意点 なぜ Go 言語で CLI ツールを作るのか 以下の 4 点がぱっと思いつきますね。 作ってて楽しい クロスコンパイル可能なので、複数プラットフォームへの対応が容易 コンパイラ言語であるためそこそこ性能がでる 作ってて楽しい また、みなさんがよく使ってるコマンドも、実は go でできてた、なんてことも多いと思います。 作り方 主に『サブコマンドを取る形式にするかどうか』で大…
エキサイト株式会社メディア事業部エンジニアの佐々木です。HTMXは、React.jsやVue.jsなどの大きいフロントエンドフレームワークを用いることなく、SPAのような仕組みを提供してくれるライブラリになります。 htmx.org HTMXとSpringBoot Thymeleafを使用して、簡単なサンプルを作ってみます。 動作確認環境 SpringBoot側のコード HTML 実行 まとめ 最後に 動作確認環境 動作確認環境としては下記になります。 Java $ java --version openjdk 17.0.1 2021-10-19 OpenJDK Runtime Environ…
概要 最近、サーバサイドKotlinを触り始めていて、データベース管理のライブラリにJetBrains製のExposedを使っています。 Exposedの使用方法として大きくDSL方式とDAO方式の2種類あるのですが、この使い分けについて個人的な悩みがあったので記載しました。 https://github.com/JetBrains/Exposed 結論 データベースレイヤーとアプリケーションレイヤーを切り分けて管理したい場合は、DSLを中心に使う アプリケーションレイヤーでデータベースについて管理しても問題ない場合は、DAOを中心に使う ドキュメント Exposedのドキュメントはgithu…
そういえば、ずっと*1書きかけだった、こんなタイトルの記事があったのだけれど、なぜか書き進められずに放置していた。 だが、最近ずっと取り組んでいるFlutterがらみのネタも溜まってきたので少し昔に思いを馳せながらなにか書いてみようと思い立った。 時は2018年にさかのぼる 「スマホ」というモノを持つようになってかなりの年数が経ちました。とは言うものの、確か持ち始めたのは(DocomoのBlackberryが最初ですが)2010〜11年頃だったかと思います。その後、メインで使っていたauの回線もスマホにし、それ以来ほぼ(初期の頃にガラケーに戻していた頃もあったのですが)スマホを持って行動してい…
エキサイト株式会社メディア事業部エンジニアの佐々木です。JVMでJSONを扱うときのライブラリであるJacksonのフィールド名の規則を定義します。 環境 UpperCamelCase のときのJacksonの設定 SnakeCase のときのJacksonの設定 キャメルケースやスネークケースが混在する場合 まとめ 最後に 環境 Javaバージョン $ java --version openjdk 17.0.1 2021-10-19 OpenJDK Runtime Environment (build 17.0.1+12-39) OpenJDK 64-Bit Server VM (build…
概要 2023 年 2 月の目標です。 四半期の目標をもとにした目標を立てています。 msksgm.hatenablog.com 勉強関連 CI/CD とテストを対象にした OKR を 2 ヶ月目です。 注力分野 Objective(1 ヶ月度ごとの目標) Key Result(具体的な行動予定) CI/CD 業務のリポジトリに新しい CI を組み込み、業務効率向上に貢献する。シェルスクリプトの勉強をする。 「継続的デリバリー」を読む。業務のリポジトリに新しい CI を組み込む。可能であれば「マスタリング Linux シェルスクリプト 第 2 版」を読む テスト ソフトウェアテスト技法を学ぶ …
概要 2023 年 1 月の振り返りです。 今月は以下を目標にしていました。 msksgm.hatenablog.com 概要 勉強概要 1 月の OKR 結果 注力分野の振り返り CI/CD テスト 2 月の OKR 読書 OKR の書籍 継続的デリバリーのソフトウェア工学 ソフトウェア品質を高める開発者テスト シェル・ワンライナー 160 本ノック 【この 1 冊でよくわかる】 ソフトウェアテストの教科書 [増補改訂 第2版] その他 美術展 技術記事の作成 その他 1 月の振り返りまとめ 勉強概要 今月は下表のように勉強していました。 今月は合計約 175.3時間です。 年末年始休暇を合…
サーバーサイドkotlinをやり始めている。 kotlinでは、junitでもテストはできるが、kotestというテスティングフレームワークが良さそうだったので、そちらを利用することにした。 とりあえず、色んな記事を見つつ、以下の手順で導入。 gradleにプラグインを追加。 intellijに、kotestのプラグインをインストール 公式のサンプルテストコード(絶対成功するやつ)をコピペ → 実行 すると、 Found interface kotlin.time.TimeMark, but class was expected ~~ という感じのエラーが出た。 処理内容的に時間がどうのこうの…
jOOQの Record.get(field) は以下のようなシグネチャなのでnullableである。 <T> T get(Field<T> field) throws IllegalArgumentException; 一つなら良いが、複数フィールドを取得したい場合などは以下のようなコードを書くことがある。 val query = create.select().from(TODOS) val todos = query.fetch().map { record -> ToDo( id = record.get(TODOS.ID)!!, title = record.get(TODOS.TI…
こんにちは。倉内です。新年の抱負として、「今年はプログラミングを始める!」と掲げた方もいらっしゃるのではないでしょうか。昨今はpaizaラーニングをはじめ、無料~安価でプログラミングが学べるサービスは多数あり、初心者の方も手を出しやすい環境にあります。ただ、業務で使用するなど目的が明確であれば、どのプログラミング言語を学ぶか迷うことはありませんが、趣味やこれからエンジニアを目指す方にとっては最初にどの言語を学ぶか決めるのは難しいかもしれません。そこで今回は、GitHubが公開した「昨年もっとも使用されたプログラミング言語」のレポートなどを参考に、おすすめの言語とその学習法をご紹介したいと思いま…
今回は様々なプログラミング言語について、いくつかの特徴ごとにまとめたいと思います。 機械語への変換方式 コンパイル型 C, C++, C#, Java, Rust, Go, Swift, Kotlin インタプリタ型 Python, Ruby, PHP, Perl, JavaScript 補足 インタプリタ型はWebアプリ開発で使われやすい言語に多い オブジェクト指向か否か オブジェクト指向である Java, C++, C#, Python, Ruby, PHP, JavaScript オブジェクト指向でない C, Perl 補足 オブジェクト指向でないCを拡張したのがC++, それをさらに拡…
Jetpack のどのライブラリでも、Kotlin ベースの API と Java ベースの API のリファレンス ページが用意されています。 Jetpack を活用する Jetpack ライブラリは、アプリのさまざまなニーズに応えるために、単独で使用することも、組み合わせて使用することもできます。 WorkManager: バックグラウンドでのスケジューリングのニーズに応じます。 Room: データ ストレージを永続化します。 Navigation: アプリのナビゲーション フローを管理します。 CameraX: カメラアプリのニーズに応じます。 すべての Jetpack ライブラリの概要…
Android開発時によく使うライブラリのbuild.gradleの定義 バージョン部分は要更新 projectRoot/build.gradle dependencies // navigation safe args classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3' plugins app/build.gradle 冒頭 // kapt // Roomで使用 apply plugin: 'kotlin-kapt' // navigation safe args apply plugin: 'an…