JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
Android Studio kotlinのメソッドパーツ化 今回は画面遷移です ゲームの結果画面を表示するときによく使いますね val intent = Intent(this,ResultActivity::class.java) startActivity(intent) finish() /*画面を削除するとき*/ 使用例はこちら(xmlファイルは省略します) import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import andr…
TL;DR Navigation ComponentでNested Navigation Graphのrouteを指定してpopBackStackしたときは、inclusiveの値がtrue/falseいずれの場合もNested Navigation Graphから抜けることができる。
概要 Android アプリ開発の勉強でプロジェクト作成~画面作成、までの流れを勉強したのでその備忘録です。 使用環境 WIndows 11 Android Studio Giraffe | 2022.3.1 Patch 3 Kotlin 内容 手順1:適当なプロジェクトを作成する NewProject -> Empty Views Activity -> プロジェクト等を入力して Finishクリック ※画面表示を確認したいため、プロジェクトテンプレートは「Empty Views Activity」を選択 手順2:「res/values/strings.xml」を編集 Android 開発に…
Android Studio kotlinのメソッドパーツ化 今回はonTouchEventです onTouchEventは画面を押す 離す 移動するなどの操作を行ったときに呼ばれるメソッドです 前にアップしたonDrawと組み合わせると簡単なお絵描きアプリができます override fun onTouchEvent(event: MotionEvent?): Boolean { when(event.action){ MotionEvent.ACTION_DOWN -> { /*押した時の処理*/ } MotionEvent.ACTION_MOVE -> { /*移動した時の処理*/ } …
はじめに 約3年ぶりに技術同人誌の新刊(紙の本+電子のセット)を出します! タイトルは「入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発!」 中身はタイトル通り、Compose Multiplatformを使ってデスクトップアプリを作る本となっています。 今回はその紹介をさせていただきます。 目次 はじめに 目次 サンプル どんな本か? どんな人向けか 技術書典15での頒布場所(サークル配置) 技書博9での頒布場所(サークル配置) 上記以外で買いたいという方 技術書典15と技書博9でのお品書き さいごに サンプル とりあえず能書はいいからどんな本か知…
data class CustomDate( val year: Int, val month: Int, val day: Int ) fun main() { var custumDates = listOf( CustomDate(2023, 1, 1), CustomDate(2023, 1, 2), CustomDate(2023, 2, 1), CustomDate(2022, 1, 1), CustomDate(2022, 1, 2), CustomDate(2022, 2, 1) ) .shuffled() .sortedWith( compareBy<CustomDate> …
はじめに はじめまして。マイクロアドシステム開発部UDU(UI/UX開発ユニット)でアプリケーションエンジニアをしている崎元です。 今回は、私の所属するユニットでの自動テスト推進についてお話していきます。 まずは、お話を始めるにあたってマイクロアドシステム開発部でのテスト方針について触れさせていただきます。 目次 はじめに 目次 自動テストピラミッド このように変えた時に得られるメリット このように変えた時のデメリットは短期的な工数 テスト自動化の対応状況 結合テスト自動化 開発環境 GETの結合テスト 使用例 説明 POSTの結合テスト 使用例 説明 注意事項 今後の展望 自動テストピラミッ…
Android Studio kotlinのメソッドパーツ化 今回はカウントダウンタイマーです kotlinのライブラリにはカウントダウンタイマーが準備されています なのでタイマーの秒数やインターバル秒数 経過処理 終了処理を設定するだけですカウントダウンタイマーのオブジェクト val timer = (object : CountDownTimer(3000, 1000) { //1秒ごとに3秒間 override fun onTick(p0: Long) { //p0は残り時間 //途中経過 } override fun onFinish() { //終了設定 } }) タイマーをスタート…
Android Studioを使ってkotlinでアプリ開発の勉強をしています。以前の日記でAndroidアプリ超入門と言う本さえあれば目的のアプリなんて簡単に作れるぜ!とか大ぼらこいたんですがこれがまー動かないw今はキャンバスを使って丸を書いてボタンを押すと円が縮小するというアプリを作ろうとしています。ところが丸もボタンも描けたんですが丸を表示するとボタンが消え、ボタンを表示すると丸が消えるという事態。恐らくですがどちらかがどちらかを上書きしているのではないかと考えています。 丸はktファイルのonDrawを使って、ボタンはlayoutのxmlを使って描いています。ひょっとしてktファイルと…
Androidアプリの良いユニットテストを考える www.youtube.com 基本方針は以下で良さそう Androidフレームワークに依存したコードと依存していないアプリのロジックを切り離してPure Local Test(Robolectricでない単純なテスト)で実行できるようにする Androidフレームワークに依存したコードはRobolectricで実行する 上記で不足している箇所をInstrumentation Testで実行する mockito等のスタブについて 使いすぎるとテストコードと実装が密接に結びついてしまいテストコードのメンテナンスにコストがかかりやすくなるので必要の…
今年もOBOG会スタッフとして参加してました。 -X日目 ISUCONに参加登録してから、今年のISUCONとICPCが被っていることに気がつく。申し込んだのが自分な上、チームで参加登録したので、自分が参加しないわけにはいかないだろうということで、ICPC一日目は受付まで手伝うことにする。 -Y日目 去年遅刻しそうになったチームの話が、運営のチャットで話題になってた。遅刻すると失格の可能性があるというのはあまり知られていなそうだなと思った。そこで、ICPCのルールやよくつかわれる英文を、ICPC英語と題してできるだけ毎日ポストしていた。選手に見てほしかったが、自分のフォロワーに現役選手がほぼい…
こんにちは、モバイル請求書の Android アプリを担当している nakaji です。 前回の iOS アプリの記事に続いて、今回は Android アプリの技術選定と TalkBack 対応についてご紹介します。 アプリのダウンロードはこちらから: play.google.com freee請求書freee k.k.仕事効率化無料apps.apple.com 技術選定 なぜ Jetpack Compose を選んだのか 一つの画面を除いたすべての画面をJetpack Compose で実装しています。 Jetpack Compose は既存の XML ベースの Android View と…
本日、新作プログラミングゲーム『異世界ニートエンジニア英雄になる。』を公開いたしました!paizaはプログラミングを楽しみながら学んでほしいという思いから、多数の無料プログラミングゲームを公開しています。今作はシリーズ初の育成要素あり!ざまざまな難易度の問題を多数ご用意していますので、プログラミング学習を始めたばかりの方も、スキルに自信がある方も、ぜひスキルを鍛えて高難度問題のクリアに挑戦してみてください。本記事では、ゲームの遊び方や公開記念キャンペーン情報をお届けします。 ストーリー ゲームシステム 対応言語 ゲームの遊び方 訓練をしてエンジニア能力を高めよう ゲットしたアイテムを装備しよう…
japan.zdnet.com japan.zdnet.com ⇧ Rust導入はセキュリティ的な脆弱性を回避するためなんかな? というのも、最近、参加したRustのイベントで、コンパイルが遅いって話を聞いたのと、ネット上の情報でも、 users.rust-lang.org ⇧ コンパイル遅いって話があったので、少なくとも、開発スピードを上げるような目的での導入では無いのかなと。 ちなみに、 blog.rust-lang.org ⇧ 2016年頃より前は、さらに遅かったということなんかね? By the way、Androidでも、 japan.zdnet.com GoogleがAndroid…
はじめに タイトル通り技術書典15と技書博9にaozora Projectとしてサークル参加してきましたので、その感想と結果ブログです。 今回の印刷部数と頒布結果や技術同人誌の題材選びに対する考察もしてますのでぜひ見ていってください。 目次 はじめに 目次 印刷部数と頒布結果 これまでの頒布実績 考察 題材と頒布結果の考察 今後の印刷部数の考察 印刷部数が少なくなる弊害 技術書典15の感想 技書博9の感想 さいごに 印刷部数と頒布結果 感想とかいいから、印刷部数と結果はよ!って人もいると思うので先に考察含めて先に書いておきます。 かねてから告知していた通り新刊は「入門!実践!Kotlin Co…
オブジェクト指向言語の話をするときに便利なように、Javaを中心にプログラミング言語をまとめてみました。 Javaに影響与えるか、Javaから影響を受けるか、という感じですね。 Simula オブジェクト指向はここから始まったと言われています。 クラス、オブジェクト、継承、仮想関数(多態)といった、オブジェクト指向の基本要素が備わっていました。 ただし、「オブジェクト指向」という言葉は生まれていません。 Smalltalk Simulaから発想を得て「オブジェクト指向」という言葉を生んだのはアラン・ケイでした。 しかし、モデルとしてはSimulaとは異なりメッセージングを主体としたものでした。…
参加申し込みはコチラ techplay.jp ※外部サイトへ遷移いたします。 こんな方におすすめ ・Rustを活用した開発に携わるエンジニア※その他、本テーマに興味関心のある方 開催概要 Rust(プログラミング言語)エンジニア勉強会 ITテクノロジーに関する様々な職種やテーマで「他社・他の人ってどうしてるの?」を学ぶ、 TECH Streetコミュニティ恒例の事例・知見共有勉強会。 今回は3名のRust言語を扱うエンジニアが集まり最新情報や事例LTを発表します! 今回も質問コーナーをたっぷり設けますので、いろんな「知りたい!」に応えられる会を目指します! イベント名 Rust(プログラミング…
こんにちは、モバイルアプリエンジニアのnekoです。 今回は STORES ADVENT CALENDAR 10日目の記事として、先日行ったKotlinを始めとしたAndroidアプリのライブラリバージョンアップの話を書きたいと思います。 概要 まず、概要として、主なバージョン変更箇所は下記のとおりです。 その他、依存するライブラリ群もアップデートを行いました。 対象 変更前バージョン 変更後バージョン Kotlin 1.7.20 1.9.20 Gradle 7.2.2 8.1.2 Coroutines 1.6.1 1.7.3 Compose 1.3.1 1.5.0 targetSdkVers…
問題 Apple公式のOpenAPI Generatorを使うと、Responseをパーズできなくて下記のエラーが出ることがある。 Client error - cause description: 'Unknown', underlying error: DecodingError: dataCorrupted - at : Expected date string to be ISO8601-formatted. 原因 正確にはSwift OpenAPI Generatorではなくswift-openapi-runtimeがデフォルトで利用するISO8601DateTranscoderの実…
こんにちは!ぱかぱかです! 今日は現在開発を進めている飲食店記録アプリ「グルメノート」で、店登録画面からデータベースにデータを登録する処理についてまとめていきたいと思います。 以前データベースを扱う実装をしたときは普通にSQLiteライブラリだけでデータを扱っていましたが、今回は勉強も兼ねてRoomライブラリを使用してみたいと思います。 Roomの他、ViewModelやコルーチンなど色々な内容が出てきて盛りだくさんになってしまいますがご承知おきください… 前回の記事 radish-se.hatenablog.com前回はトップ画面からボタンを押して店登録画に遷移するところを作りました。前回肝…
はじめに こんにちは、STORES 決済 の Androidアプリ・SDKの開発をしている id:n-seki です。 ......この一文はよく使う紹介文なのですが、気がついたことはありませんか? そうです、アプリだけではなくSDKの開発もしています! STORES ではこのSDKを「決済 SDK」と呼んでいます。モノとしてはAndroidライブラリ(.aar)になっており、Androidアプリに組み込んでいただくことでクレジットカードなどのキャッシュレス決済をかんたんに実装できます。 coiney.com この決済 SDK ですが、もともと公開インターフェースも含めてJavaで実装されてい…
こんにちは!ディレクターの菅原です。 私はエクストーンにデザイナーとして入社して、約4年前にディレクターにジョブチェンジをしています。 (余談ですが、今のところエクストーンでのジョブチェンジ制度の利用は先にも後にも私だけですが、ジョブチェンジ歓迎だと思います!) デザイナー時代はほとんどがWebプロジェクトに携わっており、ディレクターに転身してからもWeb関連のサービスが中心でした。 しかし、最近ではスマホアプリ(以降、アプリ)が急増し、アプリのディレクションに慣れるまでに時間がかかりました。 今日は、Webディレクターがアプリのディレクションに挑む際に注意すべきポイントや意識すべきことについ…
希望する登壇者がもらえたNinja Tシャツ こんにちは、製薬企業向けプラットフォームチームエンジニアの桑原です。 JJUG CCC が2023-11-11にオフラインで開催され、エムスリーはロゴスポンサーとして参加しました。 ccc2023fall.java-users.jp JJUG CCC はコロナが流行しだした2020 Spring 以降では初のオフラインのみの開催となり、参加者も400名を超えたり活気もだんだん戻ってきているように感じます! #JJUG_CCC 400名のチェックインを超えました!ありがとうございます!https://t.co/bzbfA5eOcG— JJUG (@J…
すっかり書くのを忘れていたので書きます。 昨年度の記録はこっち。 blog.dr1009.com やってみたもの 今年はFlutterKaigiの準備で時間と余裕があまりなかったので、リリース当日に触って気づいた問題に取り組みました。 github.com github.com 簡単にまとめると、スポンサー画面のスクロールが遅れている、というものです。 どうやら画像をリサイズせずに保持しており、パフォーマンスに影響が出ていた様子です。 結果的には、Jetpack Compose用のcoilを利用することで問題を解消しました。 これはJetpack Compose用のcoilは、内部で「表示する…
概要 Android アプリ開発の勉強でユーザー操作をトリガーに任意の処理を行うリスナーの使い方を勉強したのでその備忘録です。 前回作成したサンプル画面に対して、リスナーを追加していきます。 ブログ記事編集 - はてなブログ (hatena.ne.jp) 使用環境 WIndows 11 Android Studio Giraffe | 2022.3.1 Patch 3 Kotlin 内容 まずはリスナーについて。 ユーザーがボタンタップするなどのアクションを行う、これをイベントと呼ぶ。 そのイベントに対応した処理のことを、イベントハンドラと呼ぶ。(例:ボタンタップしたら、フォームに入力された内…