JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
Android Studio kotlinのメソッドパーツ化 今回はRunnableです Runnableは定期的に指定の処理をするタイマーです var runnable = Runnable { } val handler = Handler() runnable = Runnable { Handler().postDelayed( { /*処理*/ }, 3000 ) //3000ミリ秒(3秒)後にタイマー開始 handler.postDelayed(runnable,1000) //1000ミリ秒(1秒)ごとに処理をする } handler.post(runnable) タイマー処理を…
自分が取り組んでいるKotlin製OSSプロジェクトにて、Gradle 7.6.2 -> Gradle 8.3の移行をやった際にハマったことのメモです。 github.com きっかけ このプロジェクトには、GitHub ActionsでKotlin x Javaのバージョンを組み合わせ毎の挙動を確認するグリッドテストが有ります。 このテストにK2コンパイラを使うパターンも追加しようとした所、関係の無いはずのケースが失敗するようになりました。 エラーログを確認した所キャッシュ起因に見えたので、キャッシュを全消ししてやり直した所、当該箇所は直ったものの、今度はJava 20を使うケース全てが失敗…
はじめに こんにちは!虎の穴ラボの鷺山です。 今回は、虎の穴ラボの推し言語であるKotlinのモックライブラリMockKについて、基本的な使い方のほか、実践的な使い方のいくつかを「レシピ集」としてご紹介したいと思います! MockKとは? MockKは、Kotlin向けのテスト用モックライブラリで、ライブラリ自体もKotlinで作られています。 Kotlin向けであるため、Kotlin特有の言語仕様を広くカバーしています。このため、Java向けのモックライブラリに比べてより直感的にKotlinのコードのモックを書ける点が特徴です。 前提環境 言語・ライブラリ バージョン Kotlin 1.9.…
Android Studio kotlinのメソッドパーツ化 今回はHandlerです Handlerはtimeミリ秒後に指定の処理をするものです Handler().postDelayed( { /*処理*/ }, time ) 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.view.View import android.widget.Button import a…
オンラインで参加して気になったセッションのメモ よくあるUIのサンプル github.com 結構使えそうな事例があるので参考になる。 1. ローディング 2. ボトムナビゲーション 3. ボトムシート 4. アコーディオン 5. カルーセル 6. クレジットカード番号入力 7. 固定ヘッダー 8. 特定位置へのスクロール 9. もっと見る NestedScrollについて scrollStateを渡すことでスクロール可能なコンポーネントにできる。 JetpackComposeとAndroidViewをつないで動かす事例とかも紹介されてた。 val scrollState = remember…
Android Studio kotlinのメソッドパーツ化 今回はアラートダイアログです アラートダイアログはいろんな形状にカスタマイズできますが 私が一番よく使うシンプルなものにします AlertDialog.Builder(context) .setTitle("タイトル") .setMessage("メッセージ") .setPositiveButton("Yes", { dialog, which -> //ポジティブボタンを押した時の処理 }) .setNegativeButton("No", { dialog, which -> //ネガティブボタンを押した時の処理 }) .sho…
Android Studio kotlinのメソッドパーツ化 今回はメッセージを表示するトーストです Toast.makeText( this, //context "massage", //表示するメッセージ Toast.LENGTH_SHORT // or LENGTH_LONG ).show() 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.T…
Android Studio kotlinのメソッドパーツ化 今回は有効・無効と表示・非表示ですボタン有効 btn.isEnabled = true ボタン無効 btn.isEnabled = false テキスト表示 text.setVisibility(View.VISIBLE) テキスト非表示 text.setVisibility(View.INVISIBLE) テキスト削除 text.setVisibility(View.GONE) 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import…
ローソンデジタルイノベーション(LDI)のiOS/Android開発マネージャーの阪口です。 www.ldi.co.jp 前回の開発環境紹介記事(LDIの開発環境を紹介します! - ローソンデジタルイノベーション テックブログ)から変化があるため、2023年の情報をご共有させていただきます。 はじめに 主なプロダクト 開発体制 プロセス 開発ツール CI/CD デザイン 使用ツール 開発 採用技術の全体像 採用アーキテクチャ 使用言語や主なライブラリ 品質 改善活動 締めのご挨拶 はじめに 私たち、株式会社ローソンデジタルイノベーション(LDI)は、 コンビニエンスストア「ローソン」の価値を最…
qiita.com これの「子を右から左に配置したい」のところを参考にして上下も変更可能にカスタムした。 @Composable fun InversionLayoutExample( layoutDirection: LayoutDirection = LayoutDirection.Ltr, idStart: Boolean = true) { Column(modifier = Modifier.width(200.dp)) { ProvideLayoutDirection(layoutDirection = layoutDirection) { InversionLayout(idSt…
この記事は 最近Project Eulerというものにハマっています。 projecteuler.net 簡単にいうと、プログラミングを使って数学の計算問題をたくさん解いていこうぜ、っていうサイトです。 この記事は、Project Eulerを始めたいちソフトウェアエンジニアの話です。 自己紹介 わたしは わみ というソフトウェアエンジニアです。JavaやKotlin、後はTypeScriptとかClojureとか細々と書いてます。 最近子どもが生まれて、絶賛育休中です。寝かしつけって奥が深いですよね。 わたしと数学 高校数学を数学ⅡBまで修了しています。いわゆる文系学部卒だと思ってもらえると…
概要 2023 年 7 月〜9 月の振り返りです。 7 月〜9 月の振り返り記事 2023 年 7 月〜9 月の振り返りを欠かさず実施しました。 7 月の振り返り記事 msksgm.hatenablog.com 8 月の振り返り記事 msksgm.hatenablog.com 9 月の振り返り記事 msksgm.hatenablog.com 勉強関連 勉強時間 3 ヵ月間で合計勉強時間は、382.7 時間でした。 勉強時間は毎月平均 120 時間~ 150 時間を目標にしています。 連休中を利用して旅行に行った、8 月と 9 月でもそれなりに達成できて良かったです。 7 月 8 月 9 月 約…
余りに暇なのでアンドロイドのアプリを開発してみようと教科書を買ってきました。それがこちら。 作って楽しむプログラミング Androidアプリ超入門 改訂新版 作者:WINGSプロジェクト 髙江 賢 日経BP Amazon この本がまた超わかりやすくて楽しすぎるんですよ。私のスペックは一応VC++とかC言語とかの基礎知識とか開発経験があるのでオブジェクト指向はわかってるつもりですのでアンドロイドのクラスとかの概念は理解しております。そこを踏まえて読むとすごいわかりやすい!開発環境とかオブジェクト指向の基本概念を丁寧に教えてくれていてかつKotlinという言語もわかりやすく丁寧に教えてくれています…
こんにちは。こちらの記事では2023年8/21~9/1の期間に参加させていただいた、サイボウズ株式会社さんのAndroid2weekサマーインターンシップについて書き留めたいと思います。 参加までの経緯 私は普段、個人でkotlinを用いたAndroidアプリ開発を行っています。そこで実務レベルでAndroidアプリ開発を経験できるインターンシップを探していました。加えて現在修士1年であるため、就活の観点からもインターンシップを探していました。 4月頃にサポーターズ経由でサイボウズのインターンシップ説明会を知り、参加することにしました。リモートで実施されていましたが、社員さんの気さくな雰囲気や…
はじめに こんにちは!ディップ株式会社でAndroidアプリエンジニアをやっている氏家(@southcloud_7960)です。 DroidKaigi 2023にブース出展をして参加してきたので、アンケートボードの解剖や、今回のDroidKaigiの感想などを書いていこうと思います。 https://2023.droidkaigi.jp/ 弊社のブースについて まず弊社のブースについてご紹介したいと思います。 じゃじゃーん!こんな感じのブースでした。 にぎやかなブースですね! おみくじ、アンケートボード、エナジードリンク配り、ノベルティ配布を行いました! おみくじは1等にAnkerの充電器を、…
はじめに シンプルな実装例 sealed型による実装のメリット enumに階層関係を持たせることができる 個々の値を型として扱える sealed型による実装のデメリット 言語仕様が提供する便利機能を利用できない まとめ We are hiring! はじめに blog.nnn.dev Kotlinのsealed型の使い方を考える記事の第2弾です。 前回の記事では、sealed型を使って論理和型を実装しましたが、今回は通常の enum class よりも機能を拡張したenum型を実装したいと思います。 シンプルな実装例 通常、Kotlinでenum型を使いたい場合は、enum class を使っ…
こんにちは。CTF部部長のzeosuttです。 弊社のCTFチームspookiesは、2023/09/16-17に開催されたSECCON CTF 2023 Qualsに参加しました。 結果は全体47位、国内11位で、決勝に進むことはできませんでした。 以下、各メンバーの参加記まとめです。
こんにちは!こちらの記事ではエキサイト株式会社で開催された就業型インターンにおいて、Flutterアプリ開発を通して学んだこと、感じたことをご紹介したいと思います。 自己紹介 情報系大学院に在籍しています村井と申します。普段はKotlinを用いたAndroidアプリケーション開発を中心に行なっています。大学院の研究ではVue.jsを用いたWebアプリケーション開発を行なっています。 業務内容 今回のインターンではFlutterによるモバイルアプリ開発を中心に行いました。 ウォーミングアップ 私はFlutterによる開発経験が浅く、riverpodなどを用いてToDoアプリを作る程度でした。そこ…
開発情報 アプリ名:地学の王様 - 一問一答・四択問題で暗記 開発言語:iOS→Swift, Android→Kotlin バックエンド:Firebase 公開日:iOS→2021-11-24, Android→2022-02-18 最新アップデート:2023-09-25 Update!! App Store 地学の王様 - 一問一答・四択問題で暗記 HANAUTA INC. 教育 無料 Google Play アプリ説明 地学基礎・地学の点数で悩んでますか? このアプリなら、クイズゲーム感覚で楽しく地学基礎・地学を勉強できます! 地学基礎・地学嫌いなあなたの、地学基礎・地学の見方が変わります…
久しぶりの技術記事です。 今回はKotlinConf 2023のOpening Keynoteでも盛り上がったKotlin Notebookを使い、最近JetBrainsが力を入れていくことを発表したO/RマッパーのExposedを動かすというのをやってみます。 特にKotlin Notebookはまだなかなか触ったことない方も多いと思いますが、便利なのでぜひ試していただければと思います。 Kotlin Notebookとは? Kotlin Notebookは、KotlinConf 2023で発表されたIntelliJ IDEAのプラグインで、Kotlinでの対話型の実行環境を実現するものにな…
おかげさまで、ニフクラ mobile backendは2023年9月15日で10周年を迎えました! 記念ブログを執筆しましたので是非ご覧ください🎊
こんにちは!クライアントグループの後藤です。 この度、9/14(木)~16(土)にベルサール渋谷にて開催されたDroidKaigi 2023に参加しましたので、その様子をお伝えします。 はじめに 弊社スタディプラス株式会社は、サポータースポンサーとしてDroidKaigi 2023に協賛させていただきました。今年は弊社から2名がスポンサーチケットを利用して参加しています。 また、今年の6月まで弊社にモバイルアプリエンジニアとして在籍していた中島さんが、Flutterのアプリ内課金実装についてのセッションで登壇しました。視聴していただいた皆さん、ありがとうございました! Flutterにおけるア…
DroidKaigi 2023 公式アプリなどで触ったので所感などを書き残しておく。この記事の内容は Kover 0.7.3 時点の機能に基づいている。 書いてたら思ったより長くなったので先に結論を書いておくと「簡単なので使う場合は各自でいい感じにやっといてください」になる。 Kover とは JetBrains が開発している code coverage の toolset。要するに JaCoCo みたいなやつ。今回は Gradle plugin について扱うが他に CLI も存在する。 repository: https://github.com/Kotlin/kotlinx-kover …