はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    新内閣発足

『qiita.com』

  • 人気
  • 新着
  • すべて
  • [iOS]KeyPathを利用してRxSwiftベースのViewModelを刷新する - Qiita

    3 users

    qiita.com/marty-suzuki

    2019/12/16追記 記事作成は2019年4月頃に行いましたがそこから半年以上が経ち、Unioも機能が増えたりしたので記事を更新しました。 また、Unioについての登壇なども行っておりますので、こちらの資料も参考になりましたら幸いです。 はじめに RxSwiftを用いたMVVMでアプリケーションを開発する際、ViewModelが以下のような実装になりやすくはないでしょうか。 ①公開用の入力メソッドと、内部でsubscribeするためのRelayの2つを定義している ②内部状態を公開するためのObservableと、値自体を公開するためのpropertyの2つを定義している ③内部状態なのか、入力のRelayなのかが一見わかりにくい final class SearchViewModel { let repositories: Observable<[Repository]> let e

    • テクノロジー
    • 2019/03/24 13:46
    • iOS
    • バンクシーのシュレッダーを1時間で実装して申請した話とその後 - Qiita

      3 users

      qiita.com/marty-suzuki

      はじめに CyberAgent Developers Advent Calendar 2018の11日目の投稿となります。 昨日はshiftkyさんの「Kubebuilder で Operator を作ってプライベートクラウドの操作を自動化してみる」です。 明日はbaba5246さんの「OpenPose はどこまでの画像に耐えられるのか ~ Pose Estimation の紹介~」です。 11日目は、AbemaTVのiOSアプリ開発メンバーのmarty-suzukiが担当します。 業務でやっていることや関連していることは、Speaker Deckなどでアウトプットしているので、個人で開発したiOSアプリのArtShredder(バンクシーシュレッダー)について書きます。 全体として、思い立ってから1時間でアプリの初回申請版をつくり、幾度のリジェクトを乗り切り、運用のためにFlux+MVP

      • テクノロジー
      • 2018/12/11 19:36
      • 某RxSwiftを使ったMVVMの記事の改善案 - Qiita

        5 users

        qiita.com/marty-suzuki

        まずはじめに 11月中旬にリリースされたとある記事が、初心者の方が見たら勘違いしやすい実装が複数紹介されている状態だったので、その実装に対する改善した実装を本投稿で紹介していければと思います。 ちなみに、以下の項目が改善の余地があるのではないかと感じた実装になります。 ViewControllerにObservableを加工する処理が入っている ViewModelから流れてきたイベントをViewControllerで加工せず、そのままViewにバインドするだけの実装のほうが良い Viewの操作で、observeOn(Main)またはBinderを利用していない Variableをvarで定義する Variable.valueを変更するが、Variableのインスタンス自体を変更することはほぼないはず VariableはRxSwiftのDeprecated.swiftに実装されているので(S

        • テクノロジー
        • 2018/11/18 21:13
        • RxSwift
        • MVVM
        • iOS
        • XIBからViewを生成する4つの実装パターン - Qiita

          10 users

          qiita.com/marty-suzuki

          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

          • テクノロジー
          • 2018/09/08 06:46
          • Swift4からprotocolのassociatedtypeでできるようになったこと - Qiita

            4 users

            qiita.com/marty-suzuki

            はじめに 本投稿は、Swift愛好会 Advent Calendar 2017の11日目の投稿になります。 前日の10日目は、@yutailang0119さんの「Xcode PlaygroundでPlatformによる分岐をする」という記事になります。 翌日の12日目は、@dekatotoroさんの「RxSwiftのDebounceとThrottle」という記事になります。 Swift3までのprotocolのassociatedtype Swift3まではprotocolのassociatedtypeでお互いを定義していると、下記のようなエラーになっていました。 しかし、Swift4からはprotocolのassociatedtypeでお互いを定義することができるようになったので、下記のような実装が可能になりました。 // protocol protocol A { associated

            • テクノロジー
            • 2018/08/15 00:47
            • UIViewControllerの遷移をカスタムアニメーションにする上で注意すべき点 - Qiita

              3 users

              qiita.com/marty-suzuki

              UIViewControllerの遷移は、UIViewControllerAnimatedTransitioningを使ってカスタマイズするのが、近頃では当たり前になってきています。 その中でもUIViewControllerでpresentViewController()やdismissViewController()とする場合と、UINavigationControllerでpushViewController()やpopViewController()をする場合で、使い方が多少異なります。その異なる部分には内部的にも大きな違いがあり、注意しなければいけない点がいくつかあります。 ここでは違いと注意点、普段見落としがちなプチ情報を書いていこうと思います。遷移周りのアニメーションがカクついたり、メモリが増え続けたりする場合の原因だったりすることも多々あるのでご覧頂けると幸いです。 UIV

              • テクノロジー
              • 2018/04/01 14:36
              • iOS
              • UIViewControllerAnimatedTransiti
              • RxSwiftなどを利用しないMVVMのサンプル - Qiita

                9 users

                qiita.com/marty-suzuki

                はじめに RxSwiftやReactiveCocoaなどのReactive Programmingを実現するフレームワークを利用する方が増えているので、もともとデータバインディングの機構がなかったiOSアプリ開発においてもMVVMを用いるられる機会が増えつつあると思います。 そのため、RxSwfitなどを用いてデータバインディングを行うデザインパターン = MVVMという雰囲気が漂っている気がしています。 MVVM MVVMは、View・ViewModel・Modelによって構成されます。 Viewはユーザーからのアクションを受け取って、そのイベントをViewModelにバインドします。 そして、そのバインドされたイベントによってViewModelはModelの取得や更新を行います。 ViewModelは更新された情報をイベントとしてViewにバインドし、Viewはバインドされたイベントを

                • テクノロジー
                • 2018/02/16 16:24
                • MVVM
                • swift
                • ios
                • あとで読む
                • Google Home mini買ったので、テレビと照明を操作してみた 〜購入から実現まで〜 - Qiita

                  3 users

                  qiita.com/marty-suzuki

                  はじめに 12月上旬にGoogle Home miniが半額セールだったので興味本位で購入してみました。 音声で天気を知れたり、Youtubeを再生できたりなど非常に便利だったので、ついでにテレビとか照明とかを連携してみたくなってしまいました。 そこで、機器の購入から赤外線機器の音声による操作の実現までの過程をざっくりと記載していこうと思います。 構成 Google Home mini IFTTT dataplicity または ngrok Raspberry Pi3 または Raspberry Pi Zero W Raspbian broadlinkrm-ifttt homebridge または RM Bridge RM mini3(赤外線学習リモコン) 上図のように、Google Home miniからIFTTTに登録してあるAppletで公開されているRaspberry Pi上のbr

                  • テクノロジー
                  • 2017/12/30 04:50
                  • ifttt
                  • Dockerの内部ネットワークのプライベート・アドレス帯を変更する - Qiita

                    4 users

                    qiita.com/martymarron

                    タイトルの通り、Dockerコンテナに割り当てられるIPアドレスのアドレス帯を変更します。 なぜ? デフォルトでは 172.17.0.0/16 が使われていますが、何らかの理由でこれを変更したい場合があります。 私の場合は、このアドレス帯がDockerホスト自身が所属するネットワークのアドレス帯とかぶってしまったためでした。 環境 かなり古い環境を使っています。 CentOS release 6.6 (Kernel 2.6.32) Docker version 1.7.1, build 786b29d/1.7.1 参考にした資料 Docker公式ドキュメントにも、変更の方法が記載されています。 Customize the docker0 bridge ※ 今回はこの手順だけではうまくいかなかったので、追加で行ったことも記載します。 手順 /etc/sysconfig/dockerの変更 C

                    • テクノロジー
                    • 2017/12/07 14:04
                    • Docker
                    • network
                    • 【iOSDC2017】MVC→MVP→MVVM→Fluxの実装の違いを比較してみる - Qiita

                      36 users

                      qiita.com/marty-suzuki

                      はじめに iOSDC2017にてMVC→MVP→MVVM→Fluxの実装の違いを比較してみるという内容で、Githubのユーザー検索のデモアプリをベースにした発表資料で登壇させていただきました。 登壇枠が15分だったため、ViewControllerを跨いだ(FavoriteViewController <-> RepositoryViewController)4つのデザインパターンの実装の違いにフォーカスした内容となっているので、画面遷移やテストの書き方などについても補足説明を書いていきます。 ※MVP、MVVM、Fluxでの補足説明という形で書いていきます。 登壇資料は下記になります。 本日のプレゼン資料、アップしました。https://t.co/TIecyULVp4#iosdc — marty-suzuki (@marty_suzuki) September 17, 2017 また登

                      • テクノロジー
                      • 2017/09/22 17:54
                      • flux
                      • MVC
                      • Software Design
                      • React
                      • techfeed
                      • GitHub
                      • あとで読む
                      • 【iOS】Fluxを利用して画面遷移を制御する - Qiita

                        3 users

                        qiita.com/marty-suzuki

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                        • テクノロジー
                        • 2017/05/01 19:44
                        • 【iOS】RxSwiftでFluxを実装する際のちょっと痒いところの改善案① - Qiita

                          5 users

                          qiita.com/marty-suzuki

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                          • テクノロジー
                          • 2017/04/04 16:35
                          • 【iOS】ViewControllerを汚さずにUITableViewの下部からCellを追加する実装 - Qiita

                            13 users

                            qiita.com/marty-suzuki

                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                            • テクノロジー
                            • 2017/03/19 15:55
                            • Swift
                            • iOS
                            • Qiita
                            • DispatchQueueでthrottle/debounceを実現する - Qiita

                              5 users

                              qiita.com/marty-suzuki

                              はじめに UITextFieldなどで文字が入力されたときに、その文字列をもとにAPIをたたくことがあると思います。 その際にサーバー負荷なども考慮して、APIを叩く頻度を絞ったりすると思います。 RxSwiftのthrottle/debounceを利用することで、上記のような仕様を満たした実装を容易に実現できますが、プロジェクトに何らかの理由(アプリの容量だったり、サービスの仕様であったり...)でRxSwiftを導入できないこともあるかと思います。 そういった場合、scheduledTimer(timeInterval:target:selector:userInfo:repeats:)などを利用して実装することになると思いますが、timerを管理したり、timerが実行された際にハンドリングするメソッドを実装したりしなければなりません。 そこでDispatchQueueのextens

                              • テクノロジー
                              • 2017/03/07 15:07
                              • Swift
                              • SwiftでもObjective-Cでもコードで簡単にAutoLayoutする - Qiita

                                20 users

                                qiita.com/marty-suzuki

                                はじめに コードでAutoLayoutを適用しようとすると、Swift、Objective-Cにかかわらず、どうしても長くなってしまいがちで見難くなってしまいます。その見難くなる問題を解決するために、MisterFusionというライブラリを使用して改善する例を挙げていこうと思います。 レイアウト 下記のスクリーンショットは 赤いViewと緑のViewと黄色のViewが同じ高さ 黄色のViewと緑のViewは同じ幅 すべてのスペースは10px という条件のレイアウトになります。このレイアウトを SwiftでMisterFusionを使って再現した例 Swiftで使わずに再現した例 Objecive-CでMisterFusionを使って再現した例 Objecive-Cで使わずに再現した例 という形で書いていきます。 Swift MisterFusionを使ったコード 上記のレイアウトをMis

                                • テクノロジー
                                • 2017/01/16 13:36
                                • swift
                                • Objective-C
                                • UI
                                • 開発
                                • あとで読む
                                • 【Swift】closureでstructがキャプチャーされるときに参照になっていた - Qiita

                                  6 users

                                  qiita.com/marty-suzuki

                                  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                  • テクノロジー
                                  • 2017/01/06 13:40
                                  • swift
                                  • Swift3のGCD周りのまとめ - Qiita

                                    13 users

                                    qiita.com/marty-suzuki

                                    Swift3でGrand Central Dispatchも大幅に変わっているので、簡単にまとめました。 dispatch_queue concurrent queue(実行スレッドは複数で同時に複数タスク)やserial queue(実行スレッドは1つでタスクごとに違うスレッドで実行される可能性はあるが、同時に1タスク)の生成は、以下のように行います。 // concurrent queue let concurrentQueue = DispatchQueue(label: "com.example.concurrent-queue", attributes: .concurrent) // serial queue let serialQueue = DispatchQueue(label: "com.example.serial-queue")

                                    • テクノロジー
                                    • 2016/10/27 17:02
                                    • swift
                                    • GCD
                                    • iOS
                                    • dev
                                    • The Futureというアプリを作ろうとしていたが、iOS10の仕様変更で断念した話 - Qiita

                                      3 users

                                      qiita.com/marty-suzuki

                                      はじめに ある名前のアプリを作りたいと思って、今までにリリースしてきたライブラリを以下のような命名規則で揃えてきました。 MisterFution (230 stars 2016/9/29) Objective-CとSwiftのどちらでも使える、Swift製のAutoLayout向けのDSLです。 下記のコードのように、コードを削減することができます。 superviewとのConstraintを実装する場合には、toViewをsuperviewにするという指定を省略できることが特徴です。 //NSLayoutConstraintのサンプルコード let view = UIView() self.view.addSubview(view) view.translatesAutoresizingMaskIntoConstraints = false self.view.addConstrai

                                      • テクノロジー
                                      • 2016/10/07 08:10
                                      • iOSアプリ開発でブラーエフェクトを手間なく使う方法 - Qiita

                                        4 users

                                        qiita.com/marty-suzuki

                                        ブラーエフェクトとは? ここ最近のiOSアプリでは、UIをリッチに見せるためにブラーエフェクト(磨りガラス効果)を使用する機会が増えてきました。ここでは主にUIImageViewでブラー画像を容易に扱えるようにする方法を書いていこうと思います。 今回、SABlurImageViewというUIImageViewのサブクラスを使用します。 SABlurImageViewを使用することで ブラー画像の生成 通常の画像からブラー画像に変化するアニメーション alphaを指定するように0.0から1.0の間でブラー画像の度合いの調整 を容易に実現することができます。 Youtubeよりサンプルの動画もご覧いただけます。 使用方法 以下でimageと表記されている変数は、UIImageのインスタンスです。 ・ブラー画像の生成

                                        • テクノロジー
                                        • 2016/09/29 12:44
                                        • あとで読む

                                        このページはまだ
                                        ブックマークされていません

                                        このページを最初にブックマークしてみませんか?

                                        『qiita.com』の新着エントリーを見る

                                        キーボードショートカット一覧

                                        j次のブックマーク

                                        k前のブックマーク

                                        lあとで読む

                                        eコメント一覧を開く

                                        oページを開く

                                        はてなブックマーク

                                        • 総合
                                        • 一般
                                        • 世の中
                                        • 政治と経済
                                        • 暮らし
                                        • 学び
                                        • テクノロジー
                                        • エンタメ
                                        • アニメとゲーム
                                        • おもしろ
                                        • アプリ・拡張機能
                                        • 開発ブログ
                                        • ヘルプ
                                        • お問い合わせ
                                        • ガイドライン
                                        • 利用規約
                                        • プライバシーポリシー
                                        • 利用者情報の外部送信について
                                        • ガイドライン
                                        • 利用規約
                                        • プライバシーポリシー
                                        • 利用者情報の外部送信について

                                        公式Twitter

                                        • 公式アカウント
                                        • ホットエントリー

                                        はてなのサービス

                                        • はてなブログ
                                        • はてなブログPro
                                        • 人力検索はてな
                                        • はてなブログ タグ
                                        • はてなニュース
                                        • ソレドコ
                                        • App Storeからダウンロード
                                        • Google Playで手に入れよう
                                        Copyright © 2005-2025 Hatena. All Rights Reserved.
                                        設定を変更しましたx