タグ

inventのブックマーク (93,396)

  • SwiftUI + CombineでMVVM - ANDPAD Tech Blog

    はじめに こんにちは、Octでスマホアプリの開発をしているzigeninです。 SwiftUIとCombineによるMVVMの実装のポイントを解説します。 ログイン画面とログイン後の画面があるだけのサンプルアプリを題材とします。 前提 Apple公式のSwiftUIのチュートリアルは大体やり終えている RxSwiftを触ったことがある MVVMを知っている サンプルアプリのソースコード https://github.com/KamikazeZirou/SwiftUI-MVVM サンプルアプリの動作環境 XCode 11.1でビルド iPhone 11 Pro Max 13.1 サンプルアプリの画面構成 ※ユーザIDが"foobar@example.com"、パスワードが"password"のときのみログインは成功します。 サンプルアプリのクラス構成 ViewはSwiftUIとCombine

    SwiftUI + CombineでMVVM - ANDPAD Tech Blog
    invent
    invent 2023/06/22
  • データドリブンな開発をめざして 〜モバイル用分析基盤を整備した話〜 - ANDPAD Tech Blog

    モバイルアプリチームの工藤です。 ANDPADではこれまでユーザの声や思い描くビジョンを元にアプリの開発を進めてきましたが、徐々に機能変更や改善に関する仕事も増えてきています。現在のユーザの状況を意識して議論するシチュエーションも多々あるため、PdMより直々に早急にデータ分析基盤を用意せよとのお達しがありました。 まだまだ粗い部分もありますが、先日一区切りついたのでその対応内容をまとめようと思います 全体の方針を決める 今回の対応で最も意識したのは、複雑なことはしないで専任の担当者以外でも運用・維持ができるようにするという点です。弊社はスタートアップ企業であり、データ分析が根付いている他の企業に比べてまだまだエンジニアは多くありません。明確にアプリの分析担当者が居るわけではなく、職種に関わらずこのデータに触れる可能性があります。 そのため、将来的に突発的な運用作業や謎ルールに苦しめられるこ

    データドリブンな開発をめざして 〜モバイル用分析基盤を整備した話〜 - ANDPAD Tech Blog
    invent
    invent 2023/06/22
  • 【徹底比較】Flutter VS React Native

    はじめに 今回の記事では、モバイルアプリ開発として有名なフレームワークである「Flutter」と「React Native」両方の特徴、決定的な違いを徹底解説する。 2022年11月現在では、モバイルアプリ開発としてFlutterが屈指の人気を誇っている。ところが、実はモバイルアプリを開発できるフレームワークはFlutter一択ではない。Flutter以外にモバイルアプリを開発できるフレームワークとしては、Meta(旧Facebook社)が開発したReact Nativeが挙げられる。 両者はどう違うのか。なぜ開発で使われているのか―そこで、今回の記事では特徴や課題点を徹底解説する。 記事の対象読者 モバイルアプリ開発で生計を立てているプログラマー FlutterReact Native両者の特徴を知りたい人 モバイルアプリ開発案件を検討中で技術選定をされている人 記事のタイトルが気

    【徹底比較】Flutter VS React Native
    invent
    invent 2023/06/22
  • 京都にある謎の麺、「カラシソバ」ってなんだ? | ブルータス| BRUTUS.jp

    「カラシソバ」は京都の“鳳舞系”の店にしか見られない麺料理だ。鳳舞(ほうまい)系とは、かつて京都にあった広東料理店〈鳳舞〉に縁を持つ弟子たちの店のこと。 大正時代半ばに京都に来た広東地方出身の中国人、高華吉(こうかきち)さんが昭和42(1967)年に開いた〈鳳舞〉は、彼が京都の人々の好みに合わせて編み出した、薄味でだしを利かせた独特のメニューで有名だった。店なき今もその味を求め、弟子たちの店へ通う地元民が後を絶たない。 その高さんが考案したといわれるカラシソバも、やはり独特。ゆでた中華麺をカラシ醤油で和え、その上に鶏ガラと昆布でとったスープのあんをかけるというもので、あんには小エビにカシワ、青ネギにシイタケ、そしてレタスがたっぷり入っている。麺を和えるカラシが水や湯ではなく、京都の地酢で溶かれているのも特徴だ。 また、店の品書きには「撈麺」と書かれていて、その横には「エビカシワソバ」とふり

    京都にある謎の麺、「カラシソバ」ってなんだ? | ブルータス| BRUTUS.jp
    invent
    invent 2023/06/22
  • [WWDC2023] SwiftDataを使ってみた。

    CoreDataの後継者であるSwiftDataがついにリリースされたので、簡単なアプリで使ってみた。 SwiftDataを導入するには、6つの簡単なステップを踏む。 import SwiftData モデル作成 AppでmodelContainer作成 @Environment(\.modelContext)を宣言 @Queryを配列の変数につける モデルをcontextにinsertしてsave()を行えば完成 それでは、ひとつずつ見ていこう。 1. SwiftData移入 まずはimportしよう 2. モデル作成 CoreDataを使う場合モデル作成するには.xcdatamodelファイルを開いて、「Add Entity」でEntityを追加するように実装していたが、SwiftDataではローカルデータを使用しないようにclassを作り、その上に@Modelを記述するだけです。 @

    [WWDC2023] SwiftDataを使ってみた。
    invent
    invent 2023/06/22
  • 高圧ジェットで洗車が楽々。電源不要な洗浄ノズルが万能に使える | ライフハッカー・ジャパン

    面倒な洗車も、高圧ジェットが自慢の洗浄ノズルがあれば格段に捗りそうです。 machi-yaでプロジェクトを展開するのは、噴射モードをワンタッチ切り替えられる「TORRAS」。トリガーを一押しすれば放水開始。パワフルな噴射力を自動で維持してくれるので楽ちんです。 洗車から水撒き、清掃までをスマートにこなす洗浄ノズルの魅力と特長をご紹介していきます。 電源不要でも水流はパワフルImage: TOBIHAN STORE高圧洗浄機は、汚れを素早く落とせる点で非常に便利。ただたまに使う道具としては、少々大げさに感じられるんじゃないでしょうか。 「TORRAS」は家庭用の水道に繋ぐだけで使えて、しかも水流は強力。高圧洗浄機と同じように頑固な汚れも短時間で落とせます。 Image: TOBIHAN STORE水道からホースを通って辿り着いた水流は、ノズル内で勢いを増幅。電源要らずの高圧噴射を実現している

    高圧ジェットで洗車が楽々。電源不要な洗浄ノズルが万能に使える | ライフハッカー・ジャパン
    invent
    invent 2023/06/21
  • GitHub の Issue を活用した社内の進行管理

    こんにちは、GajiLabo 横田です。受託で HTML+CSS コンポーネント・JavaScriptRails view等フロントエンド開発をお手伝いしています。 社内メンバーやパートナーさんとチームを作って、わたしが社内の進行管理をする時は、GitHub の Issue でタスクを管理することが多いです。今回は GitHub の Issue で社内の進行管理をする時に実践していることを紹介します。 Issues でタスクを可視化するチーム内のタスクはなんでもかんでも全て Issues にします。プロジェクトのスタート時にはやるべきことが見えているタスクだけでなく、まだ詳細は見えていないが調査する必要があるタスク、作業が必要かどうかから精査するタスク、不明点が多く確認が必要なタスクなど、全貌が見えないタスクも存在します。それらを認識した時点で Issue に残すことで、後々とりこぼさな

    GitHub の Issue を活用した社内の進行管理
    invent
    invent 2023/06/21
  • サイボウズの「モバイル」のこれから - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!モバイルエンジニアの森嶋です。 この記事では、サイボウズにおける「モバイルチーム」の立ち位置と、 直近取り組んだ大きな変化である「チームの分割」についてお話しさせていただきます。 サイボウズにおけるモバイルチームのミッションと立ち位置 サイボウズでは、モバイル開発に特化したチーム(=モバイルチーム)という組織体制を取ってiOS/Androidの開発を担当していました。 このチームでは、 「サイボウズ製品のユーザに、よりチームワークが高まるモバイル体験を提供する」 をミッションに掲げ、 サイボウズのモバイルアプリ開発PGの役割を一手に引き受けながら、技術的な知見共有や研鑽活動を行っていました。 具体的な活動内容に関してはモバイルチームの働き方と取り組みの紹介の記事を参照ください。 ※こちらの記事内容は取り組み前のもので現在は少し変化しています [モバイルチーム]の課題 課題①

    サイボウズの「モバイル」のこれから - Cybozu Inside Out | サイボウズエンジニアのブログ
    invent
    invent 2023/06/20
  • LazyVStackを使用すると描画処理が何度も走ってしまう

    概要 iOS14.0で利用できるようになったLazyVStackにより、SwiftUIでの開発がやりやすくなったように感じます。 しかし私が携わっているプロジェクトにて少し複雑なレイアウトをLazyVStackを用いて組むと、スクロールがカクついてしまうような事象が発生しました。その一因として、LazyVStackの中にどのようなコンポーネントを配置するかによって毎回レンダリング処理が走ってしまうことが挙げられそうでした。 今回は自分がハマったコンポーネントの配置方法を紹介したいと思います。 Stack+ForEach LazyVStackの中にVStack/HStack/ZStackを配置して、さらにその中でForEachを使うケースは多々あるのかなと思います。 例えば文字列を表示するシンプルなレイアウトを組んでみます。 再描画される書き方 struct ContentView: Vie

    LazyVStackを使用すると描画処理が何度も走ってしまう
    invent
    invent 2023/06/20
  • アジャイルやスクラムでも遅い? TeslaやSpaceXがイノベーションを生み出せる理由

    アジャイルスクラムはソフトウェア開発に適用するもの」というイメージが強いかもしれない。しかし、イーロン・マスク氏が率いるTeslaやSpaceXでは、電気自動車やロケットというハードウェアにもアジャイルスクラムの考え方を取り入れ、これまでのモノ作りでは考えられないような短期間で新しいバージョンの製品をリリースするサイクルを確立している。そして今、その先を目指そうとしているという。 認定スクラムトレーナーとして活躍し、MicrosoftAmazon、TeslaやSpaceXでアジャイル導入支援の経験を持つAgile Business InstituteのCEO、Joe Justice(ジョー・ジャスティス)氏が2022年7月に開催された「Agile Tech EXPO 2022」の基調講演に登場し、その「凄さ」を紹介した。 「アジャイルは何もソフトウェアだけのものではありません。もち

    アジャイルやスクラムでも遅い? TeslaやSpaceXがイノベーションを生み出せる理由
    invent
    invent 2023/06/16
  • アプリを利用しながらアプリの更新ができるin-app updates - JX通信社エンジニアブログ

    Androidエンジニアの@sakebookです。 今まではストアに飛ばしたり、自前で用意したロジックやAPIで更新があるかを確認していました。しかしそんな時代はもう終わりました。Play Core Libraryを使えばアプリ内でアップデートが可能になります。 in-app updates 文字通りアプリ内でアプリのアップデートを行える機能です。アプリのアップデートといえば、知らない間に自動更新されていたり、ストアへ行って更新ボタンを押すなどがありましたが、それらのトリガーをアプリ内から任意のタイミングで引き起こすことが可能になったイメージです。 in-app updatesでは大きく分けて2つの方法がサポートされています。 フレキシブル(Flexible) 知らない間に自動更新 に相当するものです。ユーザにアプリを利用させつつ更新版アプリをDLし、DL完了したタイミングで再起動するメソ

    アプリを利用しながらアプリの更新ができるin-app updates - JX通信社エンジニアブログ
    invent
    invent 2023/06/16
  • チーム規模が変動するチームでスクラムマスターとしてやってきたこと - JX通信社エンジニアブログ

    お久しぶりです。シニアエンジニアの @sakebook です。今回私がスクラムマスター(以下SM)として所属するチームで、SMとして、およびチームで取り組んできたことなどを共有します。 背景 他社事例なども見聞きするなかで、今まで何をやってきたのかを共有することはそれなりに誰かの役に立つことがあると思ったのでこの度まとめました。 前提 この手の話を見聞きする上で前提が異なっていると解釈しにくいので、私たちのチームについて説明します。 チームには業務委託や副業の方、つまり週5稼動ではない人たちもいました。 最大でエンジニアは10人強いました。出入りは数ヶ月単位で発生していて、最小は5人です。 PBI管理にはJIRAとNotionを併用しています。 1スプリントは2週間です。 チームはフルリモートです。 リファインメントの整理 スプリント計画で時間を押してしまうことが多く、リファインメントが慢

    チーム規模が変動するチームでスクラムマスターとしてやってきたこと - JX通信社エンジニアブログ
    invent
    invent 2023/06/16
  • ママリ iOSアプリのモジュール分割 - コネヒト開発者ブログ

    こんにちは!コネヒトでiOSエンジニアをやっていますyanamuraです。 ママリのiOSアプリでモジュール分割を行いましたのでその内容について記載しました。 なぜモジュール分割 目的としては大きく2つありました。 1つ目はApp Extensionsをつくるのを楽にしたいためです。 以前ママリでApp Extensionsを使ったプロトタイプで作ろうとした際、App Extensionsからママリアプリの一部のコードを再利用しようとしたところ、依存関係の問題で芋づる式にたくさんのコードを取り込まなければならなくなりとても大変な思いをしました。App Extensionsで共通利用しそうな部分はモジュール化して分割しておくべきだったなという経験からモジュール分割しようという思いに至りました。 2つ目はSwiftUIのプレビューを速くしたいためです。 ママリのiOSアプリではSwiftUI

    ママリ iOSアプリのモジュール分割 - コネヒト開発者ブログ
    invent
    invent 2023/06/15
  • ママリ iOSアプリの2023年3月現在の開発環境 - コネヒト開発者ブログ

    2023年3月現在のママリのiOSアプリは開発環境について紹介します。 言語 100% Swiftで、以前はObjective-Cのコードもありましたが、全てSwiftに書き換えました。 iOSのサポート範囲 iOS14以上としています。4/10以降は14.5以上に変更予定です。(iOS14.0~14.4でSwiftUIの挙動の違いがあるためサポート範囲外としました) 使っている主なフレームワークやライブラリ 主に以下のフレームワークやライブラリを利用しています。 UIKit, SwiftUI RxSwift, Combine Realm Firebase 以前はUIKitとRxSwiftを使っていましたが、新しい画面についてはSwiftUIとCombineを使用する方針で開発しています。ただし、SwiftUIで実装する際に特殊な方法が必要であれば、新たな負債を作らないためにUIKitで実

    ママリ iOSアプリの2023年3月現在の開発環境 - コネヒト開発者ブログ
    invent
    invent 2023/06/15
  • 机の上の救世主!? 12-in-1モニタースタンド「Anker 675」に色々接続する【小寺信良の週刊 Electric Zooma!】

    机の上の救世主!? 12-in-1モニタースタンド「Anker 675」に色々接続する【小寺信良の週刊 Electric Zooma!】
    invent
    invent 2023/06/15
  • ReactNativeのパフォーマンスを計測する - mrsekut-p

    invent
    invent 2023/06/13
  • React Nativeでパフォーマンスチューニングするときに役立ちそうなライブラリ紹介 - お気持ちの表明

    この記事はReact Native Advent Calendar 2019の 12 日目の記事です。 10 日目は、React Native の iOS/Android ビルドする bitrise.yml を晒してみる&ビルド高速化などでした。 パフォーマンスチューニングをしようとした際に、Weak Point を調べるライブラリを調べていたので、紹介したいと思います 🤘 ライブラリ紹介 why-did-you-render コンポーネントが再 Rendering されたときに、何が起因で再 Rendering が起こったのかを console に出してくれる君。 Statefull な Component が多いときに入れておくと便利そう。 welldone-software/why-did-you-render 使い方は、Root となる箇所で以下のように書いとくだけ。 すべての

    React Nativeでパフォーマンスチューニングするときに役立ちそうなライブラリ紹介 - お気持ちの表明
    invent
    invent 2023/06/13
  • 改正電気通信事業法が施行だけど、またしても何も知らなかったWebサイトやアプリ運用者のために書いておくぜ - フジイユウジ::ドットネット

    2023年6月16日 から改正電気通信事業法が施行なんですけど知ってました? これ、収益目的なら企業運営でも個人運営でもほとんどのWebサービス・スマホアプリが対象という、めちゃめちゃ広範囲にみんなが対応が必要なやつなんですけど、ヤバくない? 何もしてなくない? やっべえなというWEBサイト担当者/アプリ開発者が結構いそうな雰囲気がいんたーねっつから漂ってまいりました。 企業のオウンドメディアや、個人運営のアフィリエイト目的サイトなんかも対象になる場合があって、メディア系サイトはもちろんアプリ開発者にも影響ある感じですので、やるべき内容をブログにしたためておきます。 ※ぼくは法律の専門家ではないので、ちゃんと総務省の公式ドキュメントなどにも当たってくださいね。 ググると「外部送信規律」とか「電気通信事業者又は第三号事業を営む者」とか専門用語の記事ばっかり出てきて自分が何をしたらいいのかの情

    改正電気通信事業法が施行だけど、またしても何も知らなかったWebサイトやアプリ運用者のために書いておくぜ - フジイユウジ::ドットネット
    invent
    invent 2023/06/13
  • FlatListの最適化 - mrsekut-p

    trueにするとviewport外のViewはNativie View階層から切り離され、スクロールのパフォーマンスが向上する

    FlatListの最適化 - mrsekut-p
    invent
    invent 2023/06/12
  • AVPlayerの実装におけるベストプラクティス - tasuwo-ios

    ローカルファイルの URL から動画を再生する場合を考えてみる。下記のようなシンプルなコードになるはずで、これは正しい。

    AVPlayerの実装におけるベストプラクティス - tasuwo-ios
    invent
    invent 2023/06/09