しばらくiOSから離れていてSwiftはほとんど触ったことないのでとりあえずObjective-Cでやりました。このあとSwiftで実装し直そうと思ってるけれど、一旦エントリにします。 いつだったかDHHが既存のWebサイトを活かしてアプリ作るよーみたいなことを言ってたのを覚えていたので、今回は「いや、実際どうやってやるんだろうな」というのを考えてみたわけです。 何をやりたいかこういうページ遷移がある普通のWebサイトがあるとして、 このページをiOSのUIWebViewで表示するんだけど、リンクをタップしたときに新しいViewControllerを作ってNavigationで遷移するということをやってみます。普通にやるとリンクをタップしたら同一WebView内画面遷移するところを、あたかもiOSのネイティブのように動かしてみようということね。 結論からいうとそれは可能です。↓のアニGIF
iPhone 7 での Suica登録に失敗するユーザーがとても多い状態が続いています。 Suicaの登録は、Appleが管轄するApplePay・Walletアプリと、JR東日本が管轄するSuica・Suicaアプリの両者が関係する領域であることもあり、問い合わせ先もややこしいことになっています。 また、トラブルが続出した結果JR東日本が慌てて掲載した「Apple PayへのSuicaカードの取り込みができにくい事象について」には、最後の手段として「コールセンターまでご連絡願います」と書いてあるのですが、肝心のコールセンターの電話番号や対応時間などの詳細がさっぱり記載されておらず、公式Webサイトからも、どこにあるのかを発見するのが困難であり、困ってしまう人が多いようです。 というわけで今回は、Apple PayでのSuica利用に関する問い合わせ先について、まとめておきます(基本、Su
[iOS 11] iOS 11で追加されたUINavigationItemのsearchControllerプロパティを使ってSearchBarをナビゲーションインターフェースに統合する iOS 11で追加されたUINavigationItemのsearchControllerプロパティ iOS 11でUINavigationItemに追加されたsearchControllerプロパティを使用すると簡単にUINavigationBarにSearchBarを統合することができます。 ここで「統合」と表現したのは、「ナビゲーションバーに埋め込まれたように表示することができる」という意味です。 検証環境 本エントリは以下の環境で検証を行っています。 macOS Sierra バージョン 10.12.6 Xcode Version 9.0.1 (9A1004) Swift 4 iPhone X シ
こんにちは、技術部モバイル基盤グループの茂呂(@slightair)です。 先日のiOSDCは大盛況でしたね。とても楽しく、実りあるカンファレンスでした。この記事で僕は ididblog! ということにしようと思っています 😋 クックパッドからは @giginet と僕の二人が登壇しました。発表を聞きに来ていただいた方はありがとうございました。 @giginet の 詳解Fastfile という発表中でさらっと話された、”毎週自動的にリリースされる”という言葉が気になった方はいるのではないでしょうか。実はこのリリースフローについての話もプロポーザルに出していたのです(もっともっと細かくリリースをしてユーザーに最速で価値を届けるためのリリースフロー)。 この記事ではこのリリースフローについての話をしたいと思います。 クックパッドアプリの開発体制 クックパッドアプリの開発体制は人数の変動はあ
はじめに Rx とは C# 発祥の Reactive Extensions のことで、様々な言語に移植されています。RxSwift は Rx の Swift 版です。 様々な言語に移植されているのは、それだけ有用だからです。しかし Rx は有用である一方で学習コストが高く、導入の敷居が高いとみなされがちです。 ネットで Rx について検索すると、Reactive とは・・・関数指向うんたら・・・と、そりゃオブジェクト指向プログラマにはとっつきにくそうに感じるわな、と思うものが多いです。 ここではオブジェクト指向設計で一般的に利用されるオブザーバーパターンを置き換えるところから、Rx の利用方法を解説してみます。 以下のようにシリーズになっていますが、この記事の内容だけでも十分役に立つと思います。 オブザーバーパターンから始めるRxSwift入門 RxSwift入門(2) 非同期処理してみる
経緯 レイアウトを設定していると Compression Registance PriorityとContent Hugging Priorityはよく使いますが、 どっちがどっちだろうと混同することが多く、 優先順に関しても理解があいまいであったため メモとして記録します。 Compression Registance Priority ・コンテンツのつぶれにくさ ・文字列がコントローラの幅よりも長いとき末尾を「...」とならないように値を増加する ・デフォルトの優先度の値は750 Content Hugging Priority ・余白のできにくさ ・文字列がコントローラの幅よりも短いとき末尾の空白を減らすために値を増加する ・デフォルトの優先度の値は250 わかりずらいのがContent Hugging Priorityの方で、 末尾の空白を減らしたい場合に値を増加すると逆になってい
Aug 12, 2018 少し前に、自分のStoryboardの使い方をツイートしたら割と反応があったので、改めてまとめてみようと思います。これまで何年かiOSアプリの開発をしてきて、Storyboardとの付き合い方は何度も変わりました。なので、今回紹介するものはあくまで2018年現在のもので、来年には変わっているかもしれません。 説明のイメージを掴みやすくするため、画面の例を用意しました。左が編集時のStoryboardで、右が実行時のiOSシミュレーターです。具体的なトピックが出た時に、この例を説明に使うことがあります。 記事の最後にこれが動作するサンプルコードも用意しましたので、興味があればどうぞ。 Storyboardを使う目的 以下の2つを重視して、Storyboardを選択しています。 動作確認に掛かる時間を短縮する 成果物の構造を把握しやすくする ただし、Storyboar
前稿では UITableView の基本的な実装方法について解説しました。 本稿では、Swift 標準で提供されている Table View のセルのスタイルについて掘り下げて解説します。 標準のセルのスタイル 前稿では Table View のセルのスタイルに「デフォルト」のスタイルを指定しましたが、iOS 標準の Table View には4種類のセルのスタイルが用意されています。 それぞれ「Default」「SubTitle」「Value1」「Value2」という名称のスタイルです。 Default SubTitle Value1 Value2 Swift のソースコードでは、次のように記述して指定します。 // セルのスタイルに「Default」を指定する場合 (Swift2.3までは .Default と指定する) let cell = UITableViewCell(style
今年、iOSエンジニアを苦しめたであろうiPhone X対応。私も苦しめられた者の1人なのでその知見を投下しておこうと思います。この内容は2017年 AKIBA.swift忘年回の登壇資料を文章化したものになります。 以下で出てくる環境はXcode9.2bata、Swift4.0です。AutoLayoutにはPureLayoutを部分的に使用しています。 サンプルコードはGitHubに上げています。 https://github.com/akatsuki174/OutsideSafeAreaLayout SafeAreaについておさらい これから話の中で頻出するSafe Areaについて念のためさらっと確認です(とは言っても説明難しい)。 WWDC2017で登場 iOS11, Xcode9から使用可能 top及びbottom layout guideのdeprecated化と入れ替わり A
TableViewを実装する際に画一的な見た目のセルではなく、一つ一つのセルをカスタマイズしたい時があるかと思います。 僕の場合は、個人アプリのホーム画面にXibファイルで作成したTableViewを採用していますが、結構色んなことができて非常に便利でした。 今後、他のアプリでも活用する機会が増えると思ったので、今回はこれについて書いていきたいと思います。 できたもの カスタムセルを使い、異なるデザイン(とは言えLabelとHeightが異なるだけ)のセルをtableView上に描画しています。 このソースはGithubでも公開しているので、ぜひこちらも見てみて下さい。 Viewを追加 HeaderViewとTableViewをそれぞれStoryBoardに追加します。 Xibファイル追加 次にTableViewに表示したいCellの数だけXibファイルを追加していきます。 僕の場合はXi
9/15-17に開催されたiOSDC2017に参加し、9/16の1日目に「ディープリンクの設計と実装」というタイトルで発表を行った。一休レストランアプリのディープリンク対応を例にして、ユーザー体験から実装まで含めた話題を取り上げた。 Universal Linksの実装方法自体は既によく知られているので、自分の発表では実際にサービスに適用する際に困るポイントなど、できるだけ生々しい現場の話をするという方針で内容を組み立てた。スライドを見ていただければわかるが、自社アプリの宣伝も兼ねている。 また今回の発表後に、参加者からの投票で選ばれるベストスピーカー賞の2位を受賞した。発表で賞をいただくのは初めてのことで、とても嬉しい。「あるある」を詰め込んだのが良かったのかもしれない。 イベント中に各社のiOSエンジニアとディープリンク対応について話をしたが、皆共通して今のディープリンク体験はまだ微妙
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く