[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
chevron_left

メインカテゴリーを選択しなおす

cancel
notwork | モバイルアプリ開発情報 https://tech.naturalmindo.com/

モバイルアプリを中心とした開発のテックブログ(iOS/Android)その他Web、ゲームやMac、PC、スマートフォン、IoTやガジェットなどITに関するテクノロジーネタを挙げていきます。

naturalmind
フォロー
住所
未設定
出身
未設定
ブログ村参加

2021/03/02

arrow_drop_down
  • 【Flutter】テキストを繰り返し点滅アニメーションさせる方法4選

    Flutterにおいてテキストを自動ループでネオンのように点滅アニメーションさせる方法4選。『ポケポケ』(ポケモントレーディングカードゲームポケット:Pokémon Trading Card Game Pocket)のUIのイメージ。リピートでフェードイン・フェードアウトのエフェクト付きで繰り返し自動でテキストカラーの切替えがされるようなリッチなUIがiOS/Android共通で作れる。 animated_text_kitパッケージの AnimatedTextKit FlickerAnimatedText FadeAnimatedText neon_widgetsパッケージの FlickerNeonText 独自クラスによるカスタマイズコード TweenAnimationBuilder TweenAnimatedColorText 単にリッチなUIにしたい場合だけでなく、タップを促したり、見えづらいテキストを気付きやすくさせたり目立たせることができます。 サードパーティーのパッケージを含めると、テキストを点滅させる方法はいくつもあります。 アニメーションや使いやすさ、融通がきくか、フェードイン・フェードアウト、自動ループのように細かい演出ができるかなど細かいところまで特徴があるので、適したものを使用できるとよいですね。

  • 【Flutter】AnimatedCrossFadeを使って画像をうまく全面表示にできないときの対処法

    AnimatedCrossFadeで切り替える画像の全面表示がうまくいかない問題の解決方法。背景に全面表示していた画像をAnimatedCrossFadeを使って切り替えるようにしたら全面表示できなくなった。 fitHeightで横長の画像をアスペクト比維持して縦長に引き伸ばして表示していた。firstChildとsecondChildに指定していSizedBox(height: double.infinity)でレンダリングのエラー Exception caught by rendering library BoxConstraints forces an infinite height. BoxConstraints.debugAssertIsValid. Expandedでは解決せず。 Container(decoration: BoxDecoration)の指定で解決。 These invalid constraints were provided to RenderSemanticsAnnotations's layout() function by the following function, which probably computed the invalid constraints in question: RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:291:14) The offending constraints were: BoxConstraints(w=393.0, h=Infinity)

  • 【Flutter】2つの画像を交互にクロスフェードでループ表示させる方法

    Flutterにおいて2つの画像をクロスフェードでループ表示させる方法。フェードイン・フェードアウトのアニメーション付きで繰り返し自動で画像の表示切替がされるようなリッチなUIが作れる。iOS/Android共通で標準ウィジェットで使用可能。AnimatedCrossFadeを使って簡単に解決することができる。firstChild、secondChildにそれぞれ表示したいウィジェットを設定するだけ。StateNotifierにおいて一定間隔で_firstの値を変え続けるような非同期処理が必要。 エフェクトをクロスディゾルブでできればなおよし。 わざわざバナーをスライドしてもらうようなユーザーの操作を阻害させることなく、自然と背景画像でアピールしたいものを訴求したり印象付けることができます。

  • 【確定更新】ドラクエⅢ HD-2Dリメイク版の新要素・変更点まとめ

    HD-2D版「ドラゴンクエストⅢ そして伝説へ…」発売記念確定した新要素まとめ 2024年11月14日に発売したドラクエ3のリメイク版(HD-2D)変更点・新要素・新機能一覧まとめ各定番 スラぼう20

  • 【速報更新】ドラクエⅢ HD-2Dリメイク版の新要素・変更点まとめ

    「ドラゴンクエストⅢ そして伝説へ…」HD-2Dリメイク版の新機能・新要素・変更点の最新情報まとめ一覧です。従来のドラクエ3からの変更点・新要素は現時点で大きく33項目あります。速報を随時更新します。 HD-2Dグラフィックが美しい グラフィックのエフェクトや音響効果が充実 フィールドやエリアが大きくリニューアル フィールドマップに起伏がある フィールド上の街や、エリア内のマップが大幅に拡大 斜めに歩ける ダンジョンなどのマップが一部改変 はじめて訪れる街などには特別なムービーが追加 新たなイベントが追加 中ボスが多数追加 モンスターを保護にしてモンスターじいさんに預けるシステムが追加 保護したモンスターを戦わせる「モンスターバトルロード」が追加 新職業「まもの使い」が追加 従来なかった呪文や特技が追加 フィールド上にひみつの場所が追加 フィールド上にお宝スポットが追加 みのまもりのステータスが追加 新アイテムが追加 弱点や耐性、ダメージ量など調整が追加 ルーラでの行き先が大幅に追加 マップに新しい島が追加 モンスターの活躍できる新しい場所追加 ファッションデザイナーを名乗るホイミスライム「ホミちょ」が新登場 アクセサリーの装備枠が2つに拡大 ふくろが道具用と装備用と大事なものの3種類に分別化 ボイス機能が追加 性別が男女ではなくルックスとしての違いに変化 仲間のカスタマイズが可能 宿屋に「やすむ」の選択肢が追加 戦闘中のキャラクターの装備がグラフィックに反映される 職業やアイテム、呪文などの分類がアイコン化 ほぼまんたんが追加 自動そうびが追加 お助けシステムが追加 その他システム的な機能追加 各街などにセーブ用NPCが配置されている(教会に行かなくてもセーブできる) メニューからセーブができる オートセーブがある ターンごとにカメラの角度が変わる 戦闘スピードが変更できる 通常、はやい、超はやいの3種類 ダンジョンからでもルーラができる(天井にぶつかることはなくなった) カメラ距離が変更できる(回転は不可) 移動速度が変更できる(通常、ダッシュ) 全体マップとミニマップあり ワールドマップには目的地と次にすべきことが表示 ミニマップではダンジョン内の構造も表示 ゲーム中でも設定から言語切替ができる ふりがなON/

  • 「お客様のデベロッパープロフィールとすべてのアプリはGoogle Playから削除されます」とGoogle Play Consoleよりアカウント確認を求められたときの対処法まとめ

    Google Play Consoleよりアカウント確認手順 個人開発デベロッパー向けGoogle Play デベロッパーアカウント確認手順 ヒーラー2024年11月26日までにアカウント確認が終わら

  • 【ドラクエⅢ HD-2Dリメイク版】東京ゲームショー2024の公開情報からわかったことまとめ

    HD-2D版「ドラゴンクエストⅢ」の新情報より判明したことまとめ 2024年11月発売予定のドラゴンクエストⅢのリメイク版(HD-2D)の新情報、9月29日の東京ゲームショー終了時点の公開情報から発覚

  • 【ドラクエⅢ HD-2Dリメイク版】9/26の公開情報からわかったことまとめ

    2024年11月発売予定のドラゴンクエストⅢのリメイク版(HD-2D)の新情報、9月26日のゲーム紹介トレーラーによる公開情報と、東京ゲームショー2024などで明らかになった情報、気になった点のまとめです。 ・不明だった一部の職業の呪文・特技が明らかに ・まもの使いはレベル28でも特技をすべて覚えていない ・新たなアイテムが明らかに ・性格の名称変更(おじょうさま→ブルジョワ) ・オルテガの一部のイベントが明らかに ・まもの使いから魔法使いへの転職で消費MPが変わる ・仲間モンスターの一部が明らかに ・勇者は転職できないことが明らかに ・攻略本の購入特典追加でさとりの書を入手可能に ・その他スポットのビジュアルが明らかに デイン 岩石落とし せいけんづき 風のブーメラン レヴナント ばくだんいわ さまようよろい ようがんまじん ミミック ベホマスライム 公式ガイドブック ぬいぐるみ さとりのしょ

  • iPhone16発表によるApple StoreでのiPhone価格一覧まとめ

    9月9日のAppleイベントにて発表されたiPhone16シリーズ 価格改定で各iPhoneの価格はどうかわった? Apple StoreでのiPhone旧バージョンが安くなった Apple EventにてiPhone16シリーズ発表 9月13日午後9時から販売予約を受け付け開始。 共通して生成AI「Apple Intelligence」に対応 iPhone14およびiPhone15の価格が更新された。 iPhone15シリーズの128GBモデルで11万2800円。発表時の価格から1万2000円の値下げ。iPhone16シリーズの価格は、iPhone15シリーズの価格から据え置き。 iPhone14シリーズの128GBモデルで9万5800円と10万円を割った。発表時の価格から1万7000円の値下げ。 Apple Store(Web)の各機種のストレージ別の価格表です。 iPhone16 / iPhone16 Plusは屋外での視認性がより高まった。 アクションボタン カメラコントロールが新設。 iPhone16 Pro / iPhone16 Pro Maxは主にカメラ・映像回りの機能を一層強化した。ディスプレイは狭額縁化され アウトカメラは光学5倍ズームがProにも搭載された。 メインカメラはFusion Cameraという名で、約1200万画素の「2倍望遠」として運用可能だ。 動画撮影では4K(3840×2160ピクセル)/120fpsでの収録に対応しています。 Apple Intelligenceで、文章の作成支援や画像の生成、より賢くなったSiriとのテキストでの会話などが可能になりました。 Apple Intelligenceの日本語対応は2025年内に予定しています。

  • 【ドラクエⅢ HD-2Dリメイク版】9/4の公開情報からわかったことまとめ

    2024年11月発売予定のドラゴンクエストⅢのリメイク版(HD-2D)の新情報、9月4日の公開情報の詳細と、明らかになった情報、気になった点のまとめです。 ・モンスターを仲間にしてモンスターじいさんに預けるシステムがある ・仲間モンスターを戦わせることができるバトルロードが新設された ・不明だった一部の職業の呪文・特技が明らかに ・仲間の性格は、ルイーダの酒場で仲間登録時に従来どおり各種たねの振り分けで決まる ・職業のビジュアルの一部が明らかに ・ゲームスタート時点の性格診断は今回もある ・ロマリアなどその他地域のビジュアルが明らかに ・ダーマ神殿での転職の仕様はほぼ変わらない ・ファッションデザイナーを名乗るホイミスライムの「ホミちょ」が新登場 ・お助けシステムの内容が明らかに ・主人公の目覚めるオープニングストーリーが明らかに ・その他ロマリア以降のシーンが明らかに ・ダンジョン内も時間によって景色が変わる ・レベルアップ時の特技習得シーン

  • 【ドラクエⅢ HD-2Dリメイク版】勇者の特技はレベルアップだけではなくイベントで追加されていく説!?

    HD-2D版「ドラゴンクエストⅢ」の新情報より、勇者の特技はレベルアップだけでなくイベントでも追加になるのでは?という考察 2024年11月発売予定のドラゴンクエストⅢのリメイク版(HD-2D)の新説

  • ドラクエⅢ HD-2Dリメイク版に新説。公式の新情報で気になるところ考察まとめ!?

    「ドラゴンクエストⅢHD-2D版リメイク版」の新要素で気になるところをあれこれ考察! ニンテンドーダイレクトの動画・新情報で新たに次のことが分かった。 ・新職業のまもの使いが追加 ・ルイーダの酒場で仲間をカスタマイズ可能 ・いくつかの職業の特技一部公開 ・モンスターが活躍する場所が新たにできる 2階に行けるようになった ルックススタイルと服装などの見た目、髪色、声を選択できるようになった 声は海外版もあり差異なし 見た目のバリエーション確認 勇者の特技が少なすぎる 仲間モンスターはどこにいるのか?ひみつの場所や町 仲間モンスターはどんな条件で出てくるのか? まもの使いの固有スキルで存在が有利に クリア後に主人公や仲間の見た目を4種類から増やせるようになる 勇者については、転職以外に他の職業の呪文や特技を習得できるような心得システムがある ドラクエⅦの移民のようなシステムで、モンスターを仲間にしてモンスターパークを作るイベントがある

  • ドラクエⅠ HD-2Dリメイク版に新説。仲間モンスターシステム追加か!?

    HD-2D版「ドラゴンクエストⅠ&Ⅱ」のドラクエⅠに仲間モンスター要素が追加になるのでは!? 2025年発売予定の決定したドラゴンクエストⅠ・Ⅱのリメイク版(HD-2D)の新説考察まとめ スラ

  • 【Flutter】AnimatedTextKitでテキストが更新されない問題の解決方法

    【Flutter】AnimatedTextKitでテキストが更新されない問題の解決方法 1度目のアニメーションはいいのですが、2度目以降同じAnimatedTextKitを使ってテキストだけ変更して画面のリビルドがされても、アニメーションが発動せず、テキストも変わりません。 リピート回数を1にしているせいかと思い、totalRepeatCountを変えてみましたが解決しません。 textが変化してもそれを検知して再構築してはくれないようです。 StatefulWidgetを継承しているのですが、setState()は反応せず更新されません。Keyを利用して強制的に再構築させます。 https://pub.dev/packages/animated_text_kit/

  • 【Flutter】タイプライタのようなアニメーションで徐々にテキストを表示させる方法

    Textの文字列を段階的に表示する方法 アニメーションのように文字列を時間差で徐々に表示する方法 ヒーラーFlutterを使ってiOS/Android共通的にクイズ番組の問題文のアニメーションのように

  • 【WordPress】ブログのテキストに勝手にリンクが貼られるのを解除する方法

    WordpressにDiverプラグインを入れて運用しているブログで、急に虫眼鏡マーク付きのリンクが自動的に貼られるようになってしまった。そのブログのテキストにリンクが勝手に貼られるようになったのを元に戻す対処法です。 ある日突然、ブログ中のテキストに自動的にリンクが貼られるようになってしまいました。虫眼鏡マーク付きのリンクで、クリックすると、画面右にウィンドウが開いて、リンクのキーワードで検索した結果が表示されます。検索結果には、スポンサーのサイトのリンクと、その下に内部リンクとして、ブログのサイト内でキーワードの一致するページが一覧で表示されます。 調べると「Google AdSense」の広告最適化の影響だということがわかりました。 「Google AdSense」のサイトで広告インテントの設定を変更して解決できます。

  • 【Android】Gradleのバージョンを上げたら広告関連のManifest merger failedが出たときの対処法

    GradleおよびAGP(Android Gradle Plugin)のバージョンアップで発生した、広告(AdMob)関連の「Manifest merger failed」エラーを解決する方法 Manifest merger failed : Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/gma_ad_services_config) from [com.google.android.gms:play-services-ads-lite:23.2.0] AndroidManifest.xml:92:13-59 is also present at [com.google.android.gms:play-services-measurement-api:22.0.2] AndroidManifest.xml:32:13-58 value=(@xml/ga_ad_services_config). Suggestion: add 'tools:replace="android:resource"' to element at AndroidManifest.xml to override. AdMobとGoogle Servicesライブラリの既知のバグのようです。 修正内容は以下のとおりです。 AndroidManifest.xmlファイルのタグ内に、タグを追加します。 以下環境で発生 Android Studio Iguana 2023.2.1 AGP:8.3 AdMob:22.6.0 Google Services:4.4.1 Android Studio Jellyfish 2023.3.1 AGP:8.4.2 AdMob:23.2.0 Google Services:4.4.2

  • 【Android】2024年8月31日よりアプリは Android 14(API レベル 34) 以降を対象とする必要あり

    Google Play Consoleで「アプリは Android 14(API レベル 34) 以降を対象とする必要があります」が出たときの対処法 アプリは Android 14(API レベル 34) 以降を対象とする必要があります。 Google Playからのメールで、2024年8月31日以降、新しいアプリとアプリ更新の送信は Android14(APIレベル 34)をターゲットにする必要があるという通知がきた お客様のアプリは Google Play デベロッパー プログラム ポリシーを遵守していないため、まもなく措置を適用いたします。できるだけ速やかに違反を修正してください。 対処方法 引き続きアプリを更新できるようにするには、以下の手順に沿ってください。 Android 14(API レベル 34) 以上をターゲットとするようアプリを更新します。 アプリの新しいバージョンを製品版として公開します。内部テスト、クローズド テスト、オープンテストを使用して、アプリを事前にテストできます。 Starting August 31, 2024, new apps and app update submissions must target Android 14 (API level 34), except for Wear and TV OS apps, which must target Android 13 (API level 33) or higher. Existing apps must target Android 13 (API level 33) or higher to remain available to new users on devices running Android OS higher than your app's target API level. To save time and effort, you can use the new SDK Upgrade Assistant in Android Studio. You will also be able to request an extension until November 1, 2024 if you need more time to update your app. Learn mor

  • Chromeの検索バーに翻訳ツールが出ない場合の解決方法

    GoogleChromeブラウザの検索バー(アドレスバー)に翻訳ツールが表示されない場合の対処法 海外サイトなど日本語以外のページで、自動的にChromeブラウザの上部のURLが表示される検索バーの右側に翻訳ツールが表示される。開いているページ丸ごと日本語に翻訳してくれる。「Google Translate」(Google翻訳)が機能している。 1.Chrome右上のメニューアイコン「︙」を選択する 2.[設定] を選択する。 3.画面を下にスクロールし左メニューの [言語] を選択する。 4.「Google翻訳」の項目の「Google翻訳を使用する」のラジオボタンをオンにする chrome://settings/languages にアクセスするでもよい

  • 【Android】Consider using 'tasks.register' to avoid unnecessary configurationと出たときの対処法

    Android Studioでの開発において、Gradle/AGP(Android Gradle Plugin)のバージョンを上げたら、「Consider using 'tasks.register' to avoid unnecessary configuration」というwarningが出たときの対処法です。 Gradleのバージョンを6から7 or 8に上げたら、deprecated(非推奨)になってしまいました。 project/build.gradleの'task clean'の記述で、'tasks.register'に変更しましょうということです。「Use 'tasks.register'」と提案があるので従いましょう。 更に「'buildDir' is deprecated」というwarningが出たら、「rootProject.buildDir」と記述していた部分を「rootProject.layout.buildDirectory」に置き換えましょう。

  • 【Android】Consider using 'tasks.register' to avoid unnecessary configurationと出たときの対処法

    Android Studioでの開発において、Gradle/AGP(Android Gradle Plugin)のバージョンを上げたら、「Consider using 'tasks.register' to avoid unnecessary configuration」というwarningが出たときの対処法です。 Gradleのバージョンを6から7 or 8に上げたら、deprecated(非推奨)になってしまいました。 project/build.gradleの'task clean'の記述で、'tasks.register'に変更しましょうということです。「Use 'tasks.register'」と提案があるので従いましょう。 更に「'buildDir' is deprecated」というwarningが出たら、「rootProject.buildDir」と記述していた部分を「rootProject.layout.buildDirectory」に置き換えましょう。

  • 【Android】Gradleのバージョンを上げたらcompileSdkVersionなどdeprecatedの項目があったときの対処法

    Android Studioでの開発において、Gradle/AGP(Android Gradle Plugin)のバージョンを上げた、compileSdkVersion, buildToolsVersion, flavorDimensionsがdeprecatedになったときの対処法です。 Gradleのバージョンを6から7 or 8に上げたら、それぞれで非推奨になってしまいました。 gradle-wrapper.propertiesでGradleのバージョンを6.5から8.6へアップデートしました。 'compileSdkVersion' is deprecated 'buildToolsVersion' is deprecated 'flavorDimensions' is deprecated また、[Project Structure]のSuggestionsにてwarningあり Flavor 'develop' has no flavor dimension. Flavor 'production' has no flavor dimension.

  • 【ドラクエⅢ】発売日発表トレーラー+αから分かるHD-2Dリメイク版の新要素・変更点まとめ

    HD-2D版「ドラゴンクエストⅢ そして伝説へ…」の発売日発表の動画から分かる新要素まとめ 2024年11月14日に発売決定したドラクエ3のリメイク版(HD-2D)の変更点・新要素が一覧まとめ(+α)

  • 【iOS】iOS17でWidgetの背景が白く変わってしまった問題を解決する方法

    Xcode15とiOS17でウィジェットの背景が白(ダークモードでは黒)になってしまった場合の解決方法です。 Xcode15でビルドしたアプリにおいて、iOS17のiPhoneでホームに貼り付けていたウィジェットの背景の周囲が白くなるようになってしまっていました。 ウィジェットを配置する際のプレビューも同様の問題が発生します。 エラーによると、containerBackgroundを使いましょうということです。 containerBackgroundを指定する以下のようなextensionを追記します。 そして独自ウィジェットのメインのViewに、その拡張をmodifierして色指定すれば解決しました。 WWDC2023のセッションでも説明されていたようです。

  • 【ドラクエウォーク】ウォーカーズスキル職業別一覧まとめ

    ドラクエウォーク(DQW)の特級職のウォーカーズスキル一覧です。最初から使えるスキルに加えて、ダーマの試練弐ノ道で強化された内容を含めて、職業別に一覧でまとめています。 スキルは、特級職の職業によって様々で、ダメージアップや回復、助っ人参戦など、戦闘を有利にするものや、レアモンスターの出現率アップや、タップ範囲拡大などフィールドで効果が得られるものがあります。 特急職は以下の7種類です。 ゴッドハンド ゴッドパンチ 大魔道士 魔力のたてごと 大神官 癒しの陽光 ニンジャ 五感澄明 魔剣士 勇士召喚 守り人 守護者のつばさ ドラゴン ドラゴンの導き

  • 【クイックまとめ】マインクラフトでサバイバルモード序盤でやるべきこと・進め方一覧化まとめ

    Minecraftのサバイバルモードの操作・やり方はYouTubeなどの動画でよく観ていてなんとなく分かっているという人のために、スタートからすべきことを簡単に紹介します。 細かい説明を省いて一覧ぽくしたクイックまとめです。 Nintendo SwitchやiPhone、iPad、Androidなどのスマホやタブレット用のマインクラフト統合版の例です。 サバイバルモード序盤ですべきこと 拠点を作る 家を建てる 食料を確保する 探索する 鉄を確保する その後 貴重な鉱石を採掘する 高さ-54から-59に移動して、鉄鉱石だけでなく、金鉱石、ラピスラズリ、レッドストーン、ダイヤモンド、エメラルドなどを集める ネザーへ挑み、エンダードラゴンとの最終決戦のためジ・エンドに向かう

  • 【マインクラフト】サバイバルモードでやるべきこと・進め方パート2【探索編】

    マインクラフトのサバイバルモードをはじめて、拠点を作り終えて、探索に向かう上で何をしたらよいか分からないという方のために、序盤の探索準備ですべきことや進め方を解説します。 Nintendo SwitchやiPhone、iPad、Androidなどのスマホやタブレット用のマインクラフト統合版をベースに、序盤ですべき鉄の確保やその後の展開、攻略法について具体的に説明します。 まずは鉄を確保しましょう。 洞窟で鉄鉱石をどんどん採掘して、鉄ツルハシ、バケツ、鉄装備(剣、ヘルメット、鎧上下、ブーツ、盾)を揃えましょう。その後は様々なバイオーム、建築物を探しながら、ネザーやジ・エンドを目指しましょう。

  • 【マインクラフト】サバイバルモードでやるべきこと・進め方パート1【拠点作り編】

    マイクラのサバイバルモードでまずすべきことパート1 マインクラフトのサバイバルモード序盤でまず何をしたらよいか ヒーラーマインクラフトのサバイバルモードで、まず最初に何をしたらよいのかわからない。 は

  • マインクラフトの宅内(同一LAN)でのマルチプレイができないときの対処法

    マインクラフト(マイクラ)でローカル(家のWi-Fi)友だちや親子など仲間と一緒にマルチプレイできない、クロスプレイするのに、接続できないときの対策・解決法まとめです。 マイクラ統合版で家庭内LAN(宅内LAN/同一LAN)の同一SSIDで複数人・複数端末(マルチプラットフォーム)で同じ世界(ワールド)に入ってゲームが楽しめるはずですが、「世界に接続できませんでした」というエラーや、そもそもフレンドにワールドが表示されずに接続することができない場合があります。 ニンテンドースイッチ(Switch)やPlayStation(PS4/PS5)、Microsoft Xbox、iOS、Androidのスマートフォン、iPadやタブレット、Amazon Fireなどがあります。 以下原因が考えられます。 同一LANに接続できていない バージョンが合っていない マルチプレイの設定がONになっていない iOSのローカルネットワーク設定がONになっていない 再起動が必要

  • Flutterを学ぶのにおすすめの本5選

    Flutter開発者におすすめの書籍5選です。iOS/Androidモバイルアプリエンジニア向けにFlutter(Dart言語)を学習するのにおすすめの本を5つ紹介します。初心者だけでなく中級者にも十分で最新の環境構築方法や、Riverpodなどの状態管理についても触れられています。ハンズオン用にサンプルコードが充実してかゆいところへも手が届くよう本もあります。ウィジェットのグラフィックやアニメーション、ゲームやFirebaseを解説したもあります。 ・Flutter実践開発 ── iPhone/Android両対応アプリ開発のテクニック ・Flutter モバイルアプリ開発バイブル ・基礎から学ぶ Flutter ・マルチプラットフォーム対応 最新フレームワーク Flutter 3入門 ・Flutter×Firebaseで始めるモバイルアプリ開発・最新改訂版 ・Flutter×Firebaseで始めるモバイルアプリ開発 (技術書典シリーズ(NextPublishing)) クロスプラットフォーム(Xamarin、Unity、React Native)

  • 影なしでXcodeシミュレーターのスクリーンショットを撮る方法

    iOSのシミュレーターのスクリーンショットで影(シャドウ)が入ってしまう場合の解決方法です。 シミュレーターのスクリーンショット機能ではデバイスのベゼル(外側のフレーム)が画像に含まれません。 Macのスクリーンショット機能では、ツールバーと影が含まれてしまいます。プレビューアプリでツールバーは消せますが、影が残ります。 画面イメージを関係者と共有したい場合やリリース時のアプリストアのスクリーンショット用に使いたい場合があるかと思います。 その場合には、command + shift + 5のスクリーンショット撮影時にoptionキーを押しておくことで解決します。

  • LINEで「年齢認証」が出て友だち追加でID検索ができないときの対処法

    LINEアプリで「年齢認証」が出て友だち追加でID検索や電話番号検索できない、自分のIDによる友だち追加を許可できないときの対処法方法を紹介します。 iOS/Androidどちらでも使えます。 18歳以上であること前提で、ドコモやau、ソフトバンクなどキャリア側のマイページでの設定が必要です。設定したつもりでも年齢認証が完了せず、うんともすんともいわず何度年齢確認しようにも同じ操作の繰り返しになってしまうことがあります。特にエラーや次の指示が出ない場合があります。 docomoの例ではマイページ以降の設定で、LINEのサービスに年齢判定機能の通知設定を変更する必要があります。 なお、3大キャリアに限らず、楽天モバイル、LINEモバイル、Y!Mobile、UQモバイル、ahamoやLINEMOなども同様です。但しマイナーな格安SIMの通信事業者は設定できない可能性があるので注意が必要です。

  • 【ドラクエⅢ】世界の地名の由来・モデルとなった実際の国まとめ

    不朽の名作「ドラゴンクエストⅢ」の世界の地名が、現実の地球の世界のどこと対応しているのか照らし合わせながら、由来・モデルをまとめました。 ピラミッドやジパング、卑弥呼など現実世界との関連を連想するものも多く、オーストラリアがモデルになっていると勘違いされるアリアハン大陸について、超大陸パンゲアやローレシア大陸との関わりを由来とする独自の考察もあります。ドラクエ3の地名と実際の国・地域・モデルを一覧にした図表としてまとめました。

  • Github Copilotを導入して、コード補完による候補が出せなくなったときの解決方法

    Github Copilotを導入したことで、従来のIDE(AndroidStudio、VSCode)のコード補完が機能しなくなった場合の解決方法です。Copilotの候補と競合して、.(ドット)を打ったあとにメソッドやプロパティの候補が出せなくなってしまいました。 Macのシステムか、IDE(Android Studio / Visual Studio Code)のショートカットの再設定で解決させることができます。

  • 【ドラクエウォーク】正月に配布された七福竜の地図を消す方法

    ドラクエウォークで2024年正月に配布されたイベント「七福竜の地図」(ピンクの地図)を消す方法です。 新春ウォーク2024のドラゴン駅伝というイベントにおいて、リッカの宿屋から入手できる七福竜地図は、以下の7種類あります。 ・豊竜のみのりの地図 ・福竜のさかえる地図 ・勝竜のまけしらぬ地図 ・智竜のかしこき地図 ・健竜のすこやかな地図 ・愛竜のやさしき地図 ・運竜のさいわいな地図 ドラゴンのさとりさへ入手できれば、残しておく必要はありません。 地図のロックを外して削除しましょう。

  • 【Flutter】TabBarで左余白が出るようになってしまったときの解決方法

    FlutterのTabBarにて左側に余白(パディングかマージン)が入るようになった。右端は問題なく、左端のみにpadding(margin)が入る。 FlutterのSDKバージョンを上げたためと思われる。v3.16系に上げたことで、TabBarのtabAlignmentプロパティが追加されており、タブの配置をカスタマイズできるようになったためでした。

  • 【Flutter】ListViewなどにスクロールバーを表示させる方法

    ListViewやGridViewなどのリストをそのまま使っても、デフォルトではスクロールバーは表示されない。 スクロールバーがないと、スライドでコンテンツを移動した際に、全体のどのくらいの位置に移動したのかがわかりにくくなる。 スクロールバーを表示するためには、ScrollbarウィジェットでWrapするとよい。UITableViewやUICollectionViewで馴染みやすいGroupListViewやGroupGridViewのパッケージでも同様。

  • ドラクエウォークでモンスターのこころを選択するシーンなどのスクロールでサクサク移動したい

    ドラクエウォークのこころグレードアップやキャラクターのこころ変更などモンスターのこころを選択するシーンでスクロールをサクサク速く移動する方法があります。iOS/Android共通です。 こころの装備以外にも、モンスターずかん、なかまモンスターずかんなどの図鑑系、モンスターリスト、キャラクターの装備変更やルイーダの酒場の冒険者名簿や助けてくれた人一覧などのリスト表示でも有効です。また、宝の地図の地図リストでもつまみは見えませんが有効です。

  • iPhoneのスクロールで一気に移動する方法

    iPhoneやiPadにおいて、スクロールが長い場合に指でスライドを何度もするのがしんどいので、上下の移動を素早く簡単にしたい。ブラウザ(SafariやChrome)やSNSなどの各種アプリ(YouTube、LINE、X、Twitter、Instagram、TikTok、Amazonなど)でも同様に使える小技です。 スライドバーのつまみを長押ししてから移動させたり、ステータスバーのタップで自動的にトップに移動できたりします。

  • ツムツムのキャラクター選択のスクロールをサクサク移動したい

    ツムツムのツムツムコレクション画面のマイツムを選択する画面で、ページ移動のスクロールをサクサク速く移動する方法があります。iOS/Android共通です。iPadではできません。代替方法もいまのところありません。 指でスライドし続けるのは時間がかかり、じれったいので一気に移動させたい。 画面最下部の領域を左右にスライドしたりタップすると連動してページも移動します。簡単にスクロール移動量を増やしてサクサク操作することができます。

  • 【中級者】書籍「ITプロジェクトの英語」より「知っておくべき英語での言い回し10選」

    ITプロジェクトに関わるプロジェクトリーダー、プロジェクトマネージャー向けの理解しておくべき英語の言い回しが紹介されています。プロジェクトのプロセスに合わせて、ポイントや例文を多数紹介しており、より具体的で活きた英文を学ぶことができます。工数や人日・人月などの表現(MD、man-hour、man-days、person-monthなど)から、契約締結、共通化、引き継ぎ、遅延、暫定対応、検収、口頭伝達などよく使う表現にポイントを絞って例文を紹介しています。企画、設計、開発から、保守、管理、評価まで、ITプロジェクト全体をカバーしているため、PLやPMの方はもちろん候補となるエンジニアのメンバーも抑えておくとよいでしょう。

  • タイムツイストの数学の問題の解き方がわからない

    ファミコンのアドベンチャーゲームの「タイムツイスト 歴史のかたすみで…」に出てくる数学の問題の解き方を紹介します。 牛と羊と豚を1000ドルぴったりで50匹買ってこい。牛は1匹120ドル。羊は1匹30ドル。豚は1匹5ドル。 いったい何匹ずつ買えばよいかという問題です。 連立方程式や行列などだけでは簡単にかつきれいには解けないため、当たりを付ける必要があります。

  • 【Flutter】画面右上のDEBUG表示を消す方法

    Flutterによるアプリ開発で動作確認する場合、実機やXcodeのシミュレーター、Androidのエミュレーターで確認することになりますが、デバッグビルドした場合には、画面右上に「DEBUG」という帯が表示されてしまいます。 このDEBUG表示はコード1行で簡単に非表示にすることができます。 アプリリリース時にも表示されてしまうのではないかと不安になるでしょう。アプリを関係者に配布する場合にも、配布された人が同じように不安になる可能性があります。尚、リリースモードでビルドすればDEBUG表示はなくなります。アプリリリース時は、リリースモードでビルドすることになるので問題ありません。 また、アプリストアに掲載するためのスクリーンショットを撮る場合にもDEBUG表示は邪魔になります。 main.dartの大元のWidget(ここではデフォルトで生成されるMyApp)のbuild内、MaterialAppのパラメータとして、「debugShowCheckedModeBanner: false」を1行追加すれば、DEBUGモードでビルドしてもDEBUGを消すことができます。

  • 【初心者〜中級者】書籍「プログラミングの英単語」より「知っておくべき英単語」とは

    コードの気持ちがわかる!プログラミングの英単語 書籍「コードの気持ちがわかる!プログラミングの英単語」から分かるポイントをまとめます。 エンジニアが抑えておくべき英単語150 コードを読み書きするなか

  • MacでPDFの入手先情報を手早く消す方法

    Macにおいて、追加の専用アプリケーション(ソフトウェア)のインストールなしでPDFファイルの入手先プロパティ(メタデータ)を手早く簡単に消す方法。 セキュリティ上、作成したり他から入手したファイルを他の人に共有したり配布する際には、個人情報が含まれていないか注意する必要がある。 PDFのプロパティ情報を編集するような専用のアプリは不要。Macの標準機能だけで解決できる。

  • Macのよく使うショートカットキーの記号「⌘⌥⇧⌃」の覚え方

    Macでよく使うキーボードのショートカット記号を毎回忘れる調べるを繰り返して覚えられない。コマンド記号、コントロール、シフト、オプション、オルトキーがある。 Windowsにも、Ctrl、Shift、Altキーがあるが、Macは刻印がないため分からない。混乱する。順番でこじつけとガチ覚えですべて覚えるのではなく、1つ覚えて他を思い出せるようにするのが良い方法。

  • 【Flutter】Riverpodで「Bad state: No ProviderScope found」エラーが出るときの解決方法

    FlutterのRiverpodにて「Bad state: No ProviderScope found」エラーが発生。詳細には「The relevant error-causing widget was: xxPage xxPage:file:///path/main.dart:20:19 When the exception was thrown, this was the stack:」と出力されました。新規プロジェクト作成したときの実行時エラーです。 ProviderScopeをウィジェットツリーのルートに追加する必要がありました。

  • 【マインクラフト】小学生におすすめ簡単で役に立つコマンド5選

    SwitchやiOSやAndroidのスマホ・タブレットなどのマイクラ統合版で役に立つコマンドベスト5です。 長いコマンドは面倒くさいため、短くて小学生でもすぐに使えるコマンドです。欲しいアイテムやモブを手に入れたり、好きな能力(エフェクト)を手に入れることができます。 実際にコマンド大好き小学生がおすすめするトップ5です。 パソコンじゃなくてもコマンドを活用して冒険を楽にしましょう。チートを有効にしてチャット部分からできます。

  • 【iOS】iOS14のWidgetでURLから画像を表示する方法

    ウィジェット(SwiftUI)でWeb上の通信が伴う画像を表示する方法 元々アプリ内で使用している、AlamofireImage、SDWebImage、Kingfisherのような画像キャッシュライブラリは使い回せず、SwiftUI用の画像表示方法を用意 非同期とはいかないが、TableViewのようにいくつもコンテンツがあるわけではないため良しとした。 Objective-Cで使用していたコードをSwiftから使用するためBridgeファイルを作成して試みていたのですが、通信部分の処理などもろもろの都合により、Swiftで同じモデルクラスを書いたほうが速いと判断できたため、結局はウィジェット用にSwiftで新しく書き直しました。

  • 【マネジメント】書籍「ティール組織―新しい働き方のスタイル」より「ティール組織」とは

    イラスト解説ティール組織について要約しています。図が多く分かりやすくまとめられた本です。 サイボウズなど日本でも取り入れている企業も増えてきました。組織の進化をRed、Amber、Orange、Green、Tealと色で段階的に表現しています。 ソフトウェア開発におけるアジャイルもその考えです。働き方改革、不満や限界を感じているCEO、役員、管理者などにおすすめです。 ピラミッド型のヒエラルキーのある組織でトップダウンに指示されるのではなく、家族を超えたひとつの生命体と捉える世界観(パラダイム)です。 心理的安全性をもち、失敗をさらけ出すミーティングやストーリーテリング、マインドフルネスなど有効です。 [予測→制御]ではなく[感受→応答]を目指します。サーヴァントリーダーの配置も有効です。 まとめたマインドマップも添付します。

  • 【アジャイル】書籍「Clean Agile」より「小規模開発のアジャイルプラクティス」

    アジャイルの基本的な考えから、小規模開発の各視点におけるプラクティスをまとめます。 サークルオブライフを基準に、アジャイルのビジネスからチームの目線に分けて、コミュニケーションのフレームワークと原則を詳しく説明します。 計画ゲーム, 小さなリリース, 受け入れテスト, チーム全体, 持続可能なペース, 共同所有, 継続的インテグレーション, メタファー, ペアリング、ペアプログラミング, シンプルな設計, リファクタリング, テスト駆動開発(TDD), 三点見積り, ストーリーポイント, イテレーション(スプリント), フェボナッチ数列, ベロシティ, バーンダウンチャート, 継続的デリバリー, 継続的ビルド, ユビキタス言語

  • 【アジャイル】書籍「Clean Agile」より「小規模開発のアジャイル入門」

    小さなことをする、小さなソフトウェアチームがうまくやっていくためのアジャイル入門ポイントをまとめます。 アジャイルの概要から採用する理由までアジャイルとはという点をわかりやすく解説します。 スクラムやウォーターフォール 失敗例やメリットなどわかりやすく 書かれており、ビジネス、開発チーム、様々な目線でプラクティスが分類されています。マネジメントのトレードオフになる「品質」「速度」「費用」「完成」の鉄十字 イテレーションやスプリントという定期的な期間に分割し、「スケジュール」「スタッフ」「クオリティ」「スコープ」を調整します。

  • 【iOS】オープンソースライブラリを探すために知っておくべきサイト

    サードパーティー製ライブラリを使うために知っておくとよいこと 専用検索サイトを使用すると見やすく、新着や流行り、人気、安全面で適している。 githubを基本として、Cocoa Controls、Swift Package Registry、Swift Package IndexなどSwift Package Managerをサポートするものもあり。デモもあり、見やすい。ピックアップライブラリと新着情報を確認できる専用アプリも公開・リリースしました。「OSSSampler」

  • Amazon Musicで「申し訳ありませんが、このアルバムはご利用いただくことができません」と出てしまうときの対処法

    Amazonで購入した音楽をAmazon Musicアプリで聞けない場合の対処方法 Amazon Music Unlimitedでも聴けない曲はデジタルミュージックからMP3を買える場合があります。イチケイのカラスのサウンドトラックの例です。 「サービスエラー エラーが起きました。再度お試しください。問題が解決されない場合は、カスタマーサービスまでご連絡ください。」などブラウザの今すぐ聴くボタンでエラーが表示され聴くことができず、アプリで検索しても購入した曲が見当たらないということがあり、見つけることができません。マイミュージックから検索する方法があります。

  • 【Android】2021年8月からはAPKではなくAAB(Android App Bundle)が必須化

    Google PlayでAndroidアプリを公開するにはAPKではなく「Android App Bundle」が必須と発表。 ABBへの移行は簡単で、ファイルサイズを小さくでき、インストールが高速になり、ストレージが確保できるメリットがある。また、バイナリのダウンロードサイズの制限が、APKでは100MBのところ、Android App Bundleでは150MBに引き上げられるため恩恵は大きいでしょう。

  • 【iOS】UI系おすすめオープンソースライブラリ

    画面をリッチにするおすすめUI系ライブラリ リッチなUIにするためのサードパーティー製ライブラリを紹介 ヒーラー有名なアプリで使われたり、最近の流行りなどおすすめのオープンソースが知りたい タブ関連

  • 【iOS】配列を効率よく使いこなすmap、filter、reduceなどのシーケンスプロトコル

    コレクション(Collection)を賢くスマートに扱うためのmap、filter、reduceなどのシーケンスプロトコルの代表格の3つを紹介。出力用の変数宣言とfor文を省略することが可能。 配列のまま変換したり、配列から一部抽出したり、配列の合計値をとることが可能。for文との比較、$0、$1を使用したクロージャの具体例で説明。 forEach(_:) filter(_:) map(_:) flatMap(_:) compactMap(_:) reduce(_:_:)

  • 【iOS】クラス名の文字列からViewControllerクラスを生成する方法

    String型のクラス名からUIViewControllerのインスタンスを生成する方法 画面名から画面ごとのViewControllerインスタンスを生成する方法 ヒーラークラス名からのクラス生成は

  • 【iOS】イベント通知をオブジェクト間でする方法

    イベント通知する3つの方法 デリゲート・クロージャー・オブザーバーの特徴と使いどころ・利用すべきときを具体例としてサンプルで解説 別の画面や別のクラスの非同期処理の結果を受けてデータ更新後、画面を再描画、再表示したい場合など 例えばダウンロードとローディング(インジケーター:UIActivityIndicatorView)のクルクルアニメーションの関係など protocol delegate completeHandler completion @escaping NotificationCenter

  • Amazon・楽天など迷惑メールの内容まとめ

    Amazonや楽天などのオンラインショッピングサイトや三井住友、三菱UFJなどの金融機関に多いフィッシング詐欺を狙ったなりすましメールの対策と、実際のメール内容をまとめて紹介します。 「【Amazon.co.jp】注文状況をご確認ください」などの件名で不安をあおる偽メールが頻発しています。 ヨドバシカメラのヨドバシドットコムやその他以下の報告もあります。 JCBカード 三菱UFJニコスカード JACCSカード エポスカード アメリカンエクスプレス ビューカード イオンカード ファミマTカード au 佐川急便 日本郵便 Netflix bitFlyer 東京電力 送信元メールアドレスが正しい場合でもなりすましの場合があります。

  • 【初心者〜中級者】書籍「良いコードを書く技術」より「良いコード」とは

    プラグラマーのバイブルである書籍「[増補改訂]良いコードを書く技術 読みやすく保守しやすいプログラミング作法」より、よりよい美しいコードを書く方法の名前付けについてまとめます。良いコードとは何か、良いコードの定義は4つあります。追加など更新点は大きく3つあります。 名前付けの基本は以下の5つです。 良い名前の条件 一貫性がある 英語でつけられている イディオムに従っている コーディング標準に従っている

  • ドラクエウォークのGPS取得方法AとBの違いとは(ログから解析)

    ドラクエウォークのシステム設定にある位置情報の取得方法のAとBの違いは未だに明らかになっていません。 運用に問い合わせても、詳しい回答はありません。GPSとWiFiと解説しているのは間違いです。 「GPSの信号を探しています」と表示され、通信制限や電波遮断などの状況で使うべき機能なのは分かりますが、AとBが何を表していてどんなときにモードを切り替えるのかわかりません。AからBに切り替えて改善する傾向はあるようです。Wi-Fiが繋がりにくかったり、公衆WiFiなどで勝手に繋がった場合や未認証の場合かもしれません。権限の違いでもなさそうです。 正確な位置情報(GPSとネットワーク基地局「ACCESS_FINE_LOCATION」 GPSに加えWi-Fi、セルラー、モバイルデータからできる限り正確な位置情報の特定する。 大まかな位置情報(ネットワーク測位)へのアクセス「ACCESS_COARSE_LOCATION」 Wi-Fiかセルラー(モバイルルータ)を使用し、都市の1区画程度の制度で位置情報の特定する。

  • 【Android】タイプライターのように1文字ずつ表示するTextViewを作る方法(Kotlin)

    タイプライターやテレビのクイズ番組の問題文のアニメーションのように、時間差で少しずつテキストを表示する方法。TextViewの文字列を段階的に表示します。Handlerを使用して1文字ずつ一定間隔で表示します。表示スピードを変えることもできます。表示速度(間隔)時間のデフォルト0.05秒(50ミリ秒)です。停止、一時停止、再開のメソッドもあります。テキストに動きを付けることで、伝えたいメッセージを強調したり注目を得ることができます。TextViewを継承したTypewriterTextViewを作りました。ソースコードはgithubにもあります。 https://github.com/yoshidaipon/TypewriterTextView 具体例ではクイズの問題文を1文字ずつ徐々に表示して、問題を読み上げているような雰囲気を出します。

  • ドラクエウォークから分かる確認ダイアログのUX改善

    確認ポップアップで誤解を招きやすいアンチパターンとUX向上のための改善案を紹介します。 ドラクエウォークの連戦をあきらめるときの内容が分かりにくく解釈に一瞬迷い取り返しがつかなくなる恐れがある。 二重否定と質問と回答の間に説明があることで直感的でなくなっている点が挙げられる。Apple(iOS)とGoogle(Android)のガイドラインに従い、ポジティブとネガティブの文言、表現を見直すべき。

  • Chromeで「ドライブ用アプリケーション ランチャー(Google)が追加されました」と出た場合の対処法

    Chromeブラウザでエラーが表示され、Googleドライブの拡張機能を有効にすることを求められた場合の対処法 突然ブラウザ右上にエラーが出て、権限アクセスに関する警告と選択肢に警戒します。 パソコン上の別のプログラムより、Chromeの動作方法を変更する可能性のある機能拡張が追加されました。 次の権限にアクセス可能: ・連携するネイティブアプリケーションと通信 「Chromeから削除」「機能拡張を有効にする」 ドライブ用アプリケーション ランチャー(Google)とは、ウェブ上におけるGoogleドライブを便利に使える機能拡張。個人情報漏洩回避などセキュリティ的に提供元や権限、サイトへのアクセスを確認しましょう。

  • 【Android】AlertDialogの表示位置を変える方法

    アラートダイアログの表示位置を変更する方法 画面中央に表示されるポップアップでは指が届きにくくUX的に相応しくないこともあり画面下部に寄せたい。 また、ダイアログの外側をタップした場合のイベントからアクションを指定することもできるため、ダイアログを閉じたときと合わせてUX改善につながればと思います。 val dialog = AlertDialog.Builder(requireContext()).setTitle(title).setNegativeButton(R.string.cancel, { dialog, which -> }.create() //画面下部に表示 val attribute = dialog.window?.attributes attribute?.gravity = Gravity.BOTTOM dialog.window?.attributes = attribute dialog.show() setOnDismissListener

  • 【Android】ルートのFragmentに戻す方法

    FragmentManagerでルートを取得する方法。何度か画面遷移を繰り返した状態で、FragmentManager.popBackStack()で、ひとつ前の画面へ戻せるが、いくつか飛ばして、最初の画面に戻したいことがある。 任意の画面に戻るには、getBackStackEntryAt()を使用してルートIDを取得するか、名前を指定して戻れます。 val rootEntry = parentFragmentManager.getBackStackEntryAt(0) parentFragmentManager.popBackStack( rootEntry.id, FragmentManager.POP_BACK_STACK_INCLUSIVE ) parentFragmentManager.commit { addToBackStack(null) replace(R.id.container, nextFragment) }

  • 【Android】AlertDialogのリスト表示で、ArrayListが渡せずエラーが出た場合の対処法

    「None of the following functions can be called with the arguments supplied.」 リスト項目選択ダイアログで動的な文字列配列を表示しようとした際のエラー。 AlertDialogのsetItemsにArrayListが設定できない。 Array!の必要あり。 toArray()をしただけでは解決せず、CharSequenceを明示的にする必要あり。

  • 【iOS】iOS14.5から必須化されたトラッキング許可ダイアログをどうするか

    AppTrackingTransparencyでトラッキング許可率を上げるための対策 ATT許可ダイアログの文言をどうするか 「他者のAppやWebサイトを横断してあなたのアクティビティの追跡することを許可しますか? Appにトラッキングしないように要求 / 許可」 プライバシーに関するセキュリティ強化により、2021年4月27日リリースのiOS14.5から、デベロッパーは新規アプリ公開およびアプリアップデート時に、App Tracking Transparencyにてトラッキング許可を得る必要が出てきました。 「今までどおり、スマホ内の行動を追跡できるところはして、推測されるユーザーの嗜好・行動の傾向などから、ユーザーに適切な広告を表示したり、おすすめをしたいから許可してね」ということです。IDFA(広告ID)から行動の追跡がされているからこそ、年齢や性別、最近調べた検索キーワードから関連性の近い広告=最適な広告が表示できるわけです。

  • 【iOS】FirebaseのCloud Storageでサーバー上のファイルの日付を確認する方法(Swift)

    Cloud Storage for Firebaseのファイルのメタデータを取得して作成日付や更新日付をチェックする方法 デバイス上のファイルの作成日付と、ストレージに格納してあるファイルの日付を比較して、サーバー上のファイルの日付のほうが新しかったらダウンロードしたいという処理はよくあります。 日付を別で管理したり、一度ダウンロードしてから作成日付をチェックするのでは効率が悪いため、できればサーバー上のファイルを直接確認したいところです。 ソースコード例があります。 timeCreated、updated、bucket、generation、fullPath、name、size、contentLanguage,contentTypeなど

  • 【iOS】テレビのクイズ問題テロップのように1文字ずつテキスト表示する方法(Swift)

    テレビのクイズ番組の問題文のアニメーションのように、少しずつテキストを表示する方法。UITextViewやUILabelの文字列を段階的に表示します。タイマーを使用して1文字ずつ一定間隔で表示します。表示スピードを変えることもできます。人は動くものに目がいく傾向があるため、クイズ以外にもユーザーの注目を得たい、強調したい文字や文章がある場合には有効です。 例ではクイズの問題文を1文字ずつ徐々に表示して、問題を読み上げているような雰囲気を出します。文字列を一発で表示するよりもクイズの臨場感が表現することができます。

  • 【iOS】デバッグ時だけログ出力する方法(Swift)

    ロギングのベストプラクティス。Swiftの標準出力関数printが本番リリース時に出力されないよう開発デバッグ時のみログ出力させる方法 print/debugPrint/dumpどれもリリースで出力されてしまうため、ハッキングに繋がるようなセキュリティリスクを回避するために必要。 Objective-Cでのマクロに倣って、ファイル名と関数名、行数(何行目か)の情報も出力できるように対応します。 #define LOG(fmt,...) NSLog((@"%s %d " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) public func log(_ items: Any?, file: String = #file, line: Int = #line, function: String = #function)

  • 【Android】Handler() is deprecatedの警告が出た場合の対処法

    「'constructor Handler()' is deprecated. Deprecated in Java」 スプラッシュ画面で数秒を遅らせる処理でHandler().postDelayed()を使用した部分で非推奨との警告が出ました。 予期せず終了(クラッシュ)する恐れがあるため、Looperを明示的に指定する必要があります。 UIに関する処理はメインスレッドで実施する必要があるように、コンストラクタの引数に、メインルーパーを明示的に設定することで解決しました。

  • 【iOS】結局これでいい 環境ごとに設定を変える方法(Swift)

    本番環境、ステージング環境、テスト環境、開発環境などの環境変数をスマートに切り替える方法です。接続先URLなどターゲットで自動的に変わるようにしたベストプラクティス。 ConfigurationsやUser-Defined、XcodeGenやYAMLなど使用例はあるが、Debug、Releaseのビルドモードと並列の位置付けに気持ち悪さ・違和感があります。TARGETSで変わるよう、Target Membershipでリソースに含めるplistやswiftファイルを設定することを考えます。小規模開発ではこれで十分、結局これでよいのでは。 develop、staging、adhoc、production、buildTypes、productFlavors、Build Variants

  • 【iOS】本番・ステージングなど環境ごとに設定を変える方法(Objective-CからSwift)

    Objective-C時代のプロプロセッサマクロを踏襲して、本番、ステージング、開発などの環境変数をスマートに切り替える方法です。 APIの接続先URLなど動作環境を変えるのに、if文、ifdef文なしで意識することなくビルドしたいものです。 pchファイルでdefine定義そのままSwiftで踏襲します。production、adhoc、staging、developのEnvironmentが自動で切り替えられます。

  • 【iOS】Firebase Dynamic Linksでアプリが起動しない

    ダイナミックリンクでiOSのアプリを起動する方法。 リファレンスどおりに設定したつもりでも機能しない。 ディープリンク(DeepLink)やユニバーサルリンク(Universal links)/ アプリリンク(App Links)との違い、関係性を概念図で表現しました。iOSとAndroidを統合した短縮URLを提供してくれます。 従来独自ドメインでapple-app-site-associationを作成・配置する必要があります。Firebaseではカスタムドメインなしの料金は無料で、肩代わりしてくれます。Associated Domainsでapplinks:の接頭辞を付けて設定。

  • サーバー負荷を減らすための簡易的クーポンコード発行とチェック機構のつくり方

    サーバー負担軽減のためハッシュ値を使用して、ランダムでユニークなコードを自動生成する方法 抽選応募のための抽選IDや割引クーポン、特典コードやアクティベートコードのようなコードを、DBの検索負荷を軽減するために効率的に発行するテクニックがあります。 Pythonコードあり CRC32ハッシュ関数を活用して、8桁の文字列を100万件の中からピックアップする例です。

  • Androidのエミュレータで「INSTALL_FAILED_INSUFFICIENT_STORAGE」エラー

    AndroidStudioのエミュレーターでapkインストール時にストレージ不足のエラーが発生したときの対処法 「Error: ADB exited with exit code 1 Performing Streamed Install」 「adb: failed to install /Users/~/flutter_app/build/app/outputs/flutter-apk/app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]」 容量がひっ迫して、apkのインストールができなかったようです。 AVDマネージャーより該当のエミュレーターの設定値を変更しましょう。 Internal Storage SD card: Studio-managed Wipe Data

  • GIFアニメーション画像を無限ループさせる方法

    GIF画像のアニメーションを自動的に繰り返す方法 gifファイルには、1回で止まるものと、無限ループするものとあって違いがある 一度きりで終わらずに、アニメーションを連続的に繰り返し表示したい場合は、Webサイト上のオンラインツールのezgif.comが便利です。加工や設定値の変更ができます。アニメーションスピード(1秒あたりのフレーム数)やリサイズ、容量の圧縮、様々なフォーマット変換などもできます。 delayオプション loopオプション

  • まいぜんシスターズのマイッキーダンスはどこからきたのか

    マインクラフトのゲーム動画でおなじみのYouTuber「まいぜんシスターズ」のマイッキーが踊るマイッキーダンスの元ネタ Emoticons Modで腰を動かしながら両手を左右に振るダンスです。 SNSの投稿からテレビを通して爆発的な人気になりました。 簡単そうですが単純ではないようです。 腰は左右に振るだけですが、両腕は三拍子で動かすためリズムが違い混乱します。 フォートナイトのエモートとしても使われており、海外に広く知られるきっかけにもなりました。 まいぜんシスターズの愛嬌のあるカメのキャラクターのマイッキーは、動画のゲーム中でたびたび踊り出します。

  • noteで表を使う方法

    メディアプラットフォーム「note」で手軽に表を挿入する方法 HTMLやCSSなどの知識不要な代わりにほとんどテキストの装飾ができず、デザインのカスタマイズ性はありません。MicrosoftのExcelやWord、MacのNumbersなどからコピーしたい。できることは、見出し、強調、位置指定(左寄せ or 中央寄せ)、リンク、引用、コードのみでリストや表は使えません。画像をアップロードする手間なくスムーズに表を挿入する方法があります。

  • 【Flutter】Androidのカメラが起動できないときの解決方法

    Androidのカメラ起動時にエラー発生 「[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(no_available_camera, No cameras available for taking pictures., null, null)」 実機およびエミュレーターで発生。 カメラボタンで許可を求めるダイアログが表示されるので許可したあとカメラが起動せずクラッシュはない。 targetSdkVersion 30(Android10)以上の場合、AndroidManifest.xmlへの権限の記載の仕方の仕様が変わった。 uses-featureではなく、queriesで定義する必要があります。 でも可能だが相応しくない。

  • M1 Macでもできる 別のMacのTimeMachineバックアップデータから一部のデータを復元する方法

    M1 Macで、他のMacのTimeMachineバックアップデータから特定のファイルを取得したいときの解決方法 Mac内でファイルを過去にさかのぼりたいときか、Mac買い替えたときの引き継ぎや、故障などで初期化したときの復元用でmacOSのシステム丸ごと復元する機能しかないと思っていました。一部のファイルだけを復元できるかは懐疑的でした。「ほかのバックアップディスクをブラウズ」で可能という情報は古く、現在のmacOSのバージョンでは対応していません。結論としては「DiskImageMounter」を使って復元することができました。

  • Kindle Kid's Book Creatorで作成した絵本のアップロードでエラーになって出版できない場合の対処法

    Kindle Kid's Book Creatorで作成した電子書籍の絵本の入稿時に言語エラーが発生。コンテンツの電子データが完成した後に、システムへ入稿する際のエラーのため最初に知っておかないとやり直しになってしまうため是非知っておいて欲しいポイントです。「ファイルの言語が、本の設定時に選択された言語と一致しません。本の設定時に選択された言語が正しい場合は、ファイルの言語を変更して、再度アップロードしてください。ファイルの言語が正しい場合は、本の設定時に選択した言語を変更してください。」 実はKindle Kids' Book Creator は日本語に対応しておらず、問題なく作業を進められてしまうところが落とし穴でした。

  • 【IT活用例】スマートにアプリダウンロードをしてもらう方法(NFCタグ編)

    個人経営の飲食店・小売店でもできるNFCタグを使ってスマートにアプリダウンロードをしてもらう方法 アプリはあってもダウンロードしてもらえない、なかなかアプリが普及しないにQRコードと共に有効。ICタグやRFIDとも言う。 ・NFCタグは安価で調達可能(1つあたり150円程度) ・1つのNFCタグで、iOSとAndroidそれぞれのアプリストアへ対応 ・Suicaのような非接触のスマホタッチ(かざす)だけでOK FirebaseのDynamicLinks(ダイナミックリンク)を使用 名刺サイズのカードや三角柱の卓上ポップと組み合わせて効果あり

  • 【Flutter】Sliderのlabelを非表示にする方法

    スライダーウィジェットのラベルの表示を消す方法。(Material Design slider widget) スライダーのトグルを押している間に、トグル上部に値が吹き出し(ポップアップ)表示されます。省略やnullだとエラー「'!_needsLayout': is not true.」になります。SliderThemeで設定可能です。 Exception caught by rendering library The following assertion was thrown during paint(): 'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12:

  • 【Flutter】Pub getで「It looks like pub.dartlang.org is having some trouble」エラーで失敗するときの解決方法

    Flutterのpub getでパッケージインストールをした際に「It looks like pub.dartlang.org is having some trouble. Pub will wait for a while before trying to connect again.」エラーが発生。その他、pub upgradeやpub outdatedでも同様です。「pub get failed (server unavailable)」と出力され応答がない場合もありました。 アンチウイルスソフトのavastが影響していました。

  • 【Flutter】他言語対応で文字列取得時に「NoSuchMethodError」でnullが返る場合の解決方法

    Flutterにて「NoSuchMethodError: The getter '~' was called on null.」が実機やエミュレータに表示。AndroidStudioのコンソールにも「The following NoSuchMethodError was thrown building MyApp(dirty): The getter 'title' was called on null.」 MyApp extends StatelessWidgetのMaterialAppを返す引数内でローカライズの処理を実行 title: S.of(context).title 部分でnullが返りエラー。 他言語対応はFlutter Intlでgenerateされたintl_en.arbなど使用。

  • AppStoreConnectアップロードで「App Store Connect Operation Error」エラーが出た場合の対処法

    XcodeでバイナリをAppStoreConnectにアップロードしたところ「App Store Connect Operation Error」が発生。1015エラーと1004エラーのケースあり。Apple側の問題です。 「App Store Connect Operation Error An error occurred saving your changes to the Apple database. This problem may be a transient issue on the Apple side. If the problem persists for more than an hour, please contact your iTunes representative. (1015)」 「App Store Connect Operation Error Exception occurred when creating MZContentProviderUpload for provider. (1004)」 Appleのシステム状況が確認できます。「データベースへの変更の保存中にエラーが発生し、Apple側の一時的な問題の可能性があります。問題が1時間以上続く場合はお問い合わせください」とあります。

  • 【Flutter】pubspec.yamlで追加するパッケージの最新バージョンを知る方法

    Flutterのpubspec.yamlでパッケージインストールするときに最新のバージョンを確認して指定したい場合の方法です。 何も考えずに最新バージョンをインストールするならバージョン指定は不要ですが、他のパッケージとの整合性や、チームとして安定バージョンを揃えるたい場合、あえてバージョンを指定したいと思います。バージョンはpub outdatedコマンドで確認できます。Android Studio上では右上の「Pub outdated」ボタンから可能です。

  • M1 MacでAndroidエミュレーターが起動しないときの対処法

    Apple Silicon(M1チップ)のMacでAndroid StudioからAVDが起動できないときの解決方法。 「Your CPU does not support VT-x」 「The emulator process for AVD was killed.」 例はFlutterでFirebase Cloud Firestoreからデータ取得する際のエラー。 公式で配布されている「Android Emulator Apple Silicon Preview」で起動はできるが、通信でエラー 「Failed to update ssl context: com.google.android.gms.common.GooglePlayServicesNotAvailableException」 AVDのABIはx86もx86_64もダメですがarm64で解決しました。

  • 【Flutter】大量の「Error retrieving thread information: (ipc/send) invalid destination port」エラーが出る場合の解決方法

    Flutterにて「Error retrieving thread information: (ipc/send) invalid destination port」エラーがAndroidStudioのコンソールに連続的に発生。M1 Macが影響していそう。 発生元はprofiler_metrics_ios.mm。 Macの再起動で解決するようなコメントも見つけましたが、それでは解決しませんでした。結果的には、以下コマンドでFlutterを最新のmasterでリビルドすることで解決しました。

  • 簡単にSlackの一定期間経過した投稿を自動で削除する方法

    Google Apps Script(GAS)を利用して手軽にSlackの一定期間過ぎた指定チャンネルの投稿を自動的に削除する方法。無料のフリープランの最大10,000件ではすぐに過去メッセージが見れなくなるため、不要なものは消したい。 Googleスプレッドシートで指定したチャンネルを日時のトリガーで削除スクリプトを起動させる。 channelsと指定していたSlackAPIが仕様変更でConversationsAPIへ。 レスポンスコード429の"ratelimited"エラーには注意。

  • Android12ではAVIF画像がサポート

    Android12でサポートされる次世代画像フォーマットAVIFとは GoogleがAndroid 12の開発者向けプレビュー版を公開し発表 JPEG、PNG、GIFの良いとこ取りのWebPよりも優れた圧縮率 Amazon、Cisco、Google、Intel、Microsoft、Mozilla、Netflix、ARM、NVIDIA、Hulu、Facebook、Appleと名だたる大企業が開発に関係する

  • マイクラのマルチプレイで「世界に接続できませんでした」となってしまうときの対処法

    iOSのマインクラフトのクロスプレイで「世界に接続できませんでした」とエラーになるときの対処法 iPad、iPhoneなどにおいて家庭内LANのローカルネットワークでの解決法です。スイッチとスマホなので統合版(PE版・BE版)です。 iOS14アップデート後であればアクセス権限が怪しいです。 事例は家内ネットワークでのSwithとAndroidとiOSのクロスプラットフォームで、正確にいうと、AndroidはAmazon Fire タブレットアプリです。

  • 【時短ツール】手軽にGIFアニメーションをつくる方法

    ブログや説明のため数秒の動画を簡単にGIFアニメーションを作る方法。 標準ツールでは動画撮影に面倒。しかし静止画では伝わりにくい。無料で7秒間の動画を.gifファイルでダウンロードできるアプリが「Gyazo GIF」 Wordpressなどブログに貼り付けるとアニメーションが動かないケースがあり注意が必要。

  • 3Dモデルを簡単に手早く作る方法

    ARKitやARCore用に簡単な3Dモデルを手軽に手早く作る方法。販売・配布サイトには数が少ない。複雑なモデリングツールは不要。マインクラフトのように積み木感覚で直感的でシンプルなツール・アプリ。obj、dae形式でエクスポートでき、Xcode上でscnファイルに変換できます。ライセンスフリーを探すより自作したい、無料ツールでユーザー登録不要もあるのでおすすめ。

  • iOSアプリの公開に必要なスクリーンショット画像サイズまとめ

    AppStoreConnectでiOSアプリの公開に必要なスクリーンショット画像のピクセルサイズと最低限の要件について。 リリース時に忘れがち。デバイスのディスプレイサイズ毎の6.5インチ、5.5インチのiPhone、12.9インチのiPadの中で各3枚以上必要で、ベゼルあり、ベゼルなしを考慮する必要あり。 JPGまたはPNG形式(透過NG)で、RGB色空間を使用する必要あり。

  • アプリ開発時のファイルツリーのベストプラクティス

    iOS(Android)のディレクトリ配置のベストプラクティスです。SwiftのMVVMの例です。Xcodeのナビゲーターエリアのファイルツリーのディレクトリ構成の最適化。Model、View、Controller、ViewModel、API、Utils ViewController、Extensions、Constants

  • M1チップのMacで「UIImagePickerController」で写真を選んで選択ボタンを押すとクラッシュする

    Apple SiliconのMacでImagePickerの決定時にクラッシュしたときの解決方法。イメージピッカーでで選択ボタンを押したら[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil. M1 Mac、シミュレータ、CococaPods、Firebase、Excluded Architectures、arm64、iOS14がキー。

arrow_drop_down

ブログリーダー」を活用して、naturalmindさんをフォローしませんか?

ハンドル名
naturalmindさん
ブログタイトル
notwork | モバイルアプリ開発情報
フォロー
notwork | モバイルアプリ開発情報

にほんブログ村 カテゴリー一覧

商用