DMM meetupは、多種多様な生命が彩るジャングルのように毎回個性豊かなさまざまなテーマを題材に、共に学び、遊び、楽しめるイベントです。今回はオンラインサロン事業に焦点をあて、事業部メンバーが課題と取り組みについて話しました。大門弘明氏からは、React NativeからSwiftへの移行について発表がありました。React Nativeの負債化でアプリのSwift化が決定 大門弘明氏:それでは「React Nativeで書かれたアプリをSwiftで書き直しています」の発表を始めます。 まずは自己紹介をします。名前は大門と申します。2014年に新卒で合同会社DMM.comに入社して、iOSエンジニアとしてオンラインサロン事業部でお仕事をしています。本日お話しすることですが、つらい気持ちの話と、アプリ設計の紹介を少ししようと思っています。僕にとってReact Nativeはつらい。

はじめに iOSでもAndroid端末でもフロントエンドでも何かしらの通信を行ってコンテンツを取得しているでしょう。 簡略化した図を以下に記載しています。 特にシミュレーターではオフィスを快適なネットワークを支えているケースがほとんどなので実機のスペック、環境でのテストなどはすることができません。 今回はNetwork Link Conditionerを使って、意図的にネットワーク環境を設定してから通信速度チェックをして確認していこうと思います。Network Link ConditionerとはNetwork Link Conditionerとは iOS端末で、またはシミュレータ上で起動している端末のネットワーク状況を仮想的に3GやLTEなどにしたりするもの です。 なぜ必要なのか たとえばHTTPリクエストを送ってコンテンツを取得して、この一覧をUITableViewに表示するVi

Edit for iOS 11+ only Use WKHTTPCookieStore: letcookie = HTTPCookie(properties: [ .domain: "example.com", .path: "/", .name: "MyCookieName", .value: "MyCookieValue", .secure: "TRUE", .expires: NSDate(timeIntervalSinceNow: 31556926) ])! webView.configuration.websiteDataStore.httpCookieStore.setCookie(cookie) Since you are pulling them over from HTTPCookeStorage, you can do this: letcookies = HTTP
こんにちは。新規サービス開発部の中村です。普段は「たべドリ」アプリの開発をしています。「たべドリ」は料理の学習アプリです。詳細はこちらの記事をご覧ください。本記事ではUICollectionView でページングスクロールを実装する方法について解説します。 概要 上記画像が今回解説する iOS アプリのUIです。左右のコンテンツが少し見えているカルーセルUIで、以下の要件を満たすものです。 先頭にヘッダーを表示する セルが水平方向にページングスクロールする 色々な実装方法があると思いますが、今回はヘッダーがあるため複数の異なる幅のViewを表示させながら、ページングスクロールを実現する方法を解説します。実装のポイントは以下の2点です。UICollectionViewFlowLayoutのサブクラスを作成しtargetContentOffset(forProposedContentOff

こんにちは。 モバイルアプリサービスの太田です。 今さながらRxSwiftを初めて触っています。 RxSwiftの使い方も少しずつわかってきましたので、通信ライブラリAPIKitを使って、 wikiのapiをコールして、記事をインクリメンタルサーチしてみたいと思います。 環境 Xcode 10Swift 4.2 RxSwift 4.4.1APIKit 3.2.1APIKit.DataParserAPIKitは標準だとレスポンスがData->JSON(DictionaryやArray)にパースされるJSONDataParserが利用されます。 そのままではDecodableによるデコードができません。 そこで、APIKit.DataParserを継承したクラスを作り、Decodableによるデコードを行います。 final class EntityDataParser<T: Deco
![[iOS]RxSwift + APIKit + Decodableでインクリメンタルサーチ | DevelopersIO](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2fd9c911035d6b7c1c0afb32d4e1e6f2e752169d3a%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fdevio2023-media.developers.io%252Fwp-content%252Fuploads%252F2018%252F12%252Feyecatch-swift.png&f=jpg&w=240)
2018年12月12日、株式会社サイバーエージェントにて「CA.swift」の 第7回が開催されました。AbemaTVやAmeba、AWAなどを担当しているiOSエンジニアが登壇し、それぞれのチームの開発ノウハウを惜しみなく語るイベント。今回は、『iOSアプリ設計パターン入門』の著者2名を含む5人のエンジニアが、iOS開発における知見を披露します。プレゼンテーション「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」に登壇したのは、株式会社ゆめみの史翔新氏。講演資料はこちら 開発中のアプリをMVVMからMVCに戻した理由史翔新氏:先ほど紹介に預かりました史と申します。ふだんの勉強会では、loveeとか、星野さんと呼ばれているので、お気軽にどれでも好きな呼び方でお願いします。 というわけで、「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」というタイトルで発

こんにちは、投稿開発部の佐野大河(@sn_taiga)です。 先日、クックパッドのiOSアプリでレシピのエディタ画面をリニューアルしました。今日はそのUIデザインの設計についてお話します。 方針は「簡素化」 エディタ画面は、レシピを考えて記録・投稿する人にとって重要な機能の一つです。レシピには材料や作り方、料理写真、タイトル、紹介文などさまざまな項目があり、頭の中にある料理をこれらの形に落とし込んでいくのはなかなか大変な作業でもあります。なので、レシピを書く際の手間を減らし、ユーザーがストレスなくレシピを書けることを目的に「簡素化」という方針を定め、改善に取り組みました。具体的に行ったことは大きく以下の二つです。 1.入力や編集のステップを少なくする 以前のエディタ 新しいエディタ 以前のレシピエディタはひとつの項目を選択するとモーダルが開き、入力を終えたら元の画面へ戻ってくるウィジェット

※本サイトは、アフィリエイト広告および広告による収益を得て運営しています。購入により売上の一部が本サイトに還元されることがあります。Bloombergが、Appleは、2021年をめどにiPhone、iPad、Macのアプリ統合を目指すと伝えています。 WWDC2019において、iOSアプリとMacアプリの開発において、基本的なソフトウエアコードを2回書く必要はなくなる新しい開発キットを提供する予定で、2020年には、同キットを拡充してiOSアプリもMac用に転換できるようにし、2021年までには、iPhone、iPad、Macのアプリが1つにまとめられるよにすることを目指しているそうです。 ただ、計画は流動的であり、変更される可能性がある、と関係者は話しているそうです。 また、Appleは2020年という早い時期に、一部のMacを自社のチップに移行する計画で、アプリの合併計画はあるもの

退職エントリーです。前職の勤務先と年収、ウィッシュリストはありません。写真は引っ越し前に食べた海鮮丼です。転職活動 (2018/4 — 2018/9)前職はユーザー系の情報子会社でしたが、珍しいことにiOSアプリ開発やBotの開発を行っていたりと、割と好き勝手に開発の最初から最後までやってきました。それぞれ開発期間は短納期であることが常でしたが、新技術の検証に近かったこともあり、割と楽しくやっていました。 とはいえ、次の点に課題を感じてもいました。 快適なスペックではなく、動けばいいというスペックの支給端末をエンジニアに支給する文化自身がやりたいことと会社がやらせたいこととの乖離自身の思考の枠組みの固定化1.について、社内で主に使うソフトウェアはExcelとPowerpointなので大いに理解できます。一方、それらの端末でコードを書くことは想定されていなく、不満があったことも事実です。自

※本サイトは、アフィリエイト広告および広告による収益を得て運営しています。購入により売上の一部が本サイトに還元されることがあります。 Vizioが、同社のVIZIO SmartCast TV対応テレビが、2019年春にHomeKitとAirPlay 2をサポートすると発表しています。AirPlay 2を使用することで、iPhone、iPad、Macから、VIZIO SmartCast TVで映画や番組を簡単に再生でき、追加デバイスなしで、iTunesやお気に入りのアプリから直接テレビにストリーミングできるようになります。 また、4K HDRとDolby Visionでもストリーミングできるそうです。

必須: 基本的に対応が必要。何らかの要因で対応できない場合は関係者への同意をとる。 できれば:状況的に困難でなければなるべく対応する。 基本対応なし:特別な要件がなければ対応しない。 直近修正履歴(2018/11/21) [OS共通] ログ出力の対策にproguardによる方法を追記 [iOS] 通信データのキャッシュの対策に一部問題があったため修正 [OS共通] 通信の暗号化 対応要否:必須 リスクの詳細 HTTPで通信を行うと通信データが平文でネットワークに流れるため、情報漏洩の危険性がある。 対策 通信を行う場合はHTTPS(SSL/TLS)通信を利用する [OS共通]SSL証明書のチェック 対応要否:必須 リスクの詳細 通信やWebViewで行われるSSL証明書の正当性検証を無効化すると、ネットワーク管理者などにより通信経路上のデータ改竄、傍受が可能になる。 対策 試験環境で証明

TL;DR, 優先度の異なる複数の制約を同時に定義することで、静的な定義だけで動的な振る舞いを実現できる 動的な要素の少ない構造のビューはより堅牢である はじめに 読みやすくメンテナンスしやすいソフトウェアを作るために重要なことの一つは構造をシンプルに保つことです。 iOSアプリのビューは壊れやすいソフトウェアの代表ですが、できるだけシンプルに作ることで変化に強い、堅牢で壊れにくいソフトウェアにできます。 動的な要素が少ないということは、ビューがシンプルであるということの指標の1つと言えます。 この記事では下記に示すような、スクロールに合わせて伸び縮みするヘッダーを、動的な要素を無くし、Auto Layoutの静的な制約のみで実現する方法を解説します。 動的な要素とは、実行時におけるビューおよび制約の追加・削除、Frameや制約を更新することと、機種やスクリーンサイズ、標準UIコンポーネン


長いテキストが初期表示では折りたたまれて表示されていて、「つづきを読む」ボタンを押すことで表示エリアが拡大して全文が表示されるという挙動を、できるだけ動的な要素を排除して実現してみます。 サンプルコードは下記のリポジトリで公開しています。github.com 今回の例ではUIStackViewを活用します。UIStackViewは内部のビューのisHiddenプロパティによってビューのサイズをゼロにできるので、うまく活用すればあたかも複数のレイアウトを切り替えているような挙動を実現できます。 テキストビュー(またはラベル)の左右両端と上端が一致するようにStack Viewに制約を付けます。 さらにテキストビューとStack Viewの高さが一致する制約を付けます。 Stack Viewの中のビューに高さの制約として折りたたんだときのサイズを指定します。例では200ptです。 テキストの

iOSに向き合い続けた10年。岸川克己がSpreadsheetViewで埋めたかった「iOSに不足していたもの」 KeychainAccessやSpreadsheetViewなど、iOSアプリ開発で広く使用されるOSSを送り出した岸川克己さん。iOS、Swiftの世界で先駆けと評される岸川さんに、ソフトウェア開発の裏側をお聞きしました。 職業、iOSアプリ開発者。いまでこそ、こうした肩書は珍しくありませんが、10年以上前から、iOSに向き合い続けてきたエンジニアがいます。今回の主人公である岸川克己(きしかわ・かつみ/ @k_katsumi )さんは、まさに“iOSの第一人者”と呼ぶにふさわしい人物です。 2008年9月、日本でiPhoneが発売されるやすぐにアプリを送り出し、以降、岸川さんはiOSアプリを開発し続けてきました。エンジニアとしての高いスキルが評価され、これまで数多くの有名企業

As a reminder, in June the App Store ReviewGuidelines were updated to require aprivacy policy for all new apps and app updates as part of the app review process. Starting October 3, 2018, App Store Connect will require aprivacy policy for all new apps and app updates before they can be submitted for distribution on the App Store. In addition, your app’sprivacy policy link ortext will only be

Aug 12, 2018 少し前に、自分のStoryboardの使い方をツイートしたら割と反応があったので、改めてまとめてみようと思います。これまで何年かiOSアプリの開発をしてきて、Storyboardとの付き合い方は何度も変わりました。なので、今回紹介するものはあくまで2018年現在のもので、来年には変わっているかもしれません。 説明のイメージを掴みやすくするため、画面の例を用意しました。左が編集時のStoryboardで、右が実行時のiOSシミュレーターです。具体的なトピックが出た時に、この例を説明に使うことがあります。 記事の最後にこれが動作するサンプルコードも用意しましたので、興味があればどうぞ。 Storyboardを使う目的 以下の2つを重視して、Storyboardを選択しています。 動作確認に掛かる時間を短縮する 成果物の構造を把握しやすくする ただし、Storyboar


iOS 8の頃より見かけるようになった新しいモーダルビューの形態と、その設計思想、UI としての使われ方について考察します。この新しいモーダルビューのことを私は他のモーダルビューと区別する意味合いで「半モーダルビュー(Semi-Modal View)」と呼んでいますが、実際にガイドライン上でそのような定義がされているわけではありません。「ハーフモーダル」という呼び方も耳にすることがありますが、私は後述の理由からこの呼び方は推奨していません。 今回はパターンとしてあえて区別することで他のモーダルビューとの違いを明確にし、その特徴や仕組み、正しい設計とはどのようにあるべきかを理解しやすくすることを目指します。なお、2019年版のHIG(すなわちiOS 13対応版)からはモーダルビューのスタイルの一つとして Sheet の記述が現れるようになりましたが、今回は Sheet スタイルに限らずもう少

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く