こんにちは。iOS エンジニアの永田です。今日は XCUITest で UI テストを書いたことがある方向けに、UI テストをより分かりやすく書くための Page Object を紹介したいと思います。 Page Object とは Page Object とは、アプリケーションのページを抽象化したオブジェクトのことです。Page Object はそのページ固有の操作やアサーションに必要なページの状態を提供します。 本記事では、Page Object を利用するモチベーションとその実装例をご紹介します。 UI 統合テストでの問題点 XCUITest を利用すると、UI の要素やその状態の取得、タップなどの操作をメソッドを呼ぶだけで簡単に実現することができます。しかし、テストケースごとに必要な要素を用意してシナリオを満たすようにコードを書いていくと、1つのテストケースが非常に長いコードになっ
前回の投稿でAppleのFluid Interfacesについての論考しましたが、Fluid Interfacesが生まれた一つの背景として、ディスプレイの巨大化があります。 本稿では大画面化するディスプレイへのUIデザインの対応について、現在どの様な流れになっているのか、個人的に観測している中で考察している事をご紹介したいと思います。 巨大化し続けるディスプレイサイズ2007年に初めてiPhoneが世に出てから、現在の最新のモデルiPhone XS Maxまでのディスプレイサイズの変遷をまとめたのが下の図です。 初代iPhoneとXS Maxを比較すると、物理的なディスプレイ面積は約2.7倍大きくなり、ディスプレイの縦横比は約1.4倍縦長になっています。 iPhone Xから22%縦長化特に著しく変化したのが、iPhone Xが登場した事によってそれまで1.77だった縦横比が2.16まで
iPhone Xが発表されたわけですが、なにこのデザイナー泣かせの変態端末。 iPhoneのUI設計者グレッグ・クリスティが追い出されて、ジョナサン・アイヴがソフトウェア統括となったのが2014年。 iOS7のフラット化あたりから、どんどんとUI設計が置いてけぼりになった感がありましたが・・・ここにきてまたデザイナー泣かせの豪速球が。 ざっくりデザインガイドラインを読んでの、気になったところメモ。 画面サイズ サイズは従来のベースであった4.7インチの375pt x 667ptから、375 x 812ptに。縦方向に145pt追加された。 想定されるインパクト 表示可能な情報量が増える 縦スクロール系コンテンツのコンバージョンが増加 スクロールで隠れるナビゲーションの必要性が低下 画面上部のボタンのコンバージョンが低下 ゲームなどの全画面イラストに、黒枠が出たり、見切れたりする グラフィッ
アプリケーションを起動した時に表示される画面をスプラッシュ(Splash)画面、またはローンチスクリーン(Launch Screen)と呼びます。アプリケーションにおいては、ユーザーが操作することのできない数少ない画面でもあります。 iOSではこのスプラッシュ画面はストア申請時に必須であり、使用するアプリケーションの向きや、対応デバイスのサイズに適しているものを提供する必要があります。個人的感覚ではありますが、いつもアプリケーションのビジュアルデザインや、アイコンのデザインが完了した後に即興で作られるということが多いのではないでしょうか。しかし、適当にスプラッシュ画面を作成するのではなく、サービスの性質や通信の有無などを考慮してデザインする必要があります。 ここで一旦、AppleのHuman Interface Guidelineを見てみましょう。 起動画像は、アプリケーションが起動するま
This is “amazing” series of open source projects. Developed by Apple Inc, Swift is currently the most popular programming language on Github and it has one of the most active communities that kindly contribute their open source projects. Open source libraries can be sweet and they can make your life dramatically easier in building your iOS apps. For those iOS folks spending hours and days hunting
この記事の目的 セル(UITableViewCell)は iOS においてもっとも一般的なビューのひとつです。セルを利用することで、コンテンツの表示、選択、スイッチやボタンの配置、テキストフィールド、ナビゲーションを実装することができます。この辺りの具体的な実装例は『設定』や『Apple Store』が参考になるでしょう。セルにはさまざまな役割を与えられますが、どのような作法に従ってデザインされているのかよく理解する必要があります。 セルの一般的な利用作法は iOS Human Interface Guidelines で解説されていますが、私はこれを読んだだけでは十分に理解が及ばなかったため、iOS 標準アプリの事例からセルのデザインについて考察したものをまとめました。この記事では iOS の標準的なセルのデザインパターンを探り、自身のアプリにどう活かせるのかの土台となるよう考察してみま
huin Job : Software Engineer(iOS, Android) Use : Objective-C, Swift, Java Like : Gadget, Apple, Photography, Art, Design, UI, UX More posts by huin. 日本のAppStoreでは未だ公開されていないfacebookの「Paper」ですが、 そのUIは実験的ながらも非常に高い完成度で個人的にはすごく好きなアプリです。 良いアプリがあれば "どうやって作っているのか" が気になるのがイチiOSエンジニアの性なんですが、facebook自体がPaperの裏側について説明した動画をしていて、非常に良い内容だったので紹介します。 なんのイベントなのかはよくわかってないのですが、 公開日は4/18なので比較的最近だと思います。 当然英語なので理解は浅いのです
by @mixiappwchr 最近開発してるとAutoLayoutが出てきてからアプリ開発を始めている方も多く、AutoResizeってなんなの?って聞かれたので、最近語られないAutoResizeの方に目を向けてみようと思います。 AutoLayoutしかやったことなく、苦しんでいる方に光明を与えられればと思います。 AutoResize概要 親のViewのサイズに合わせて * top,bottom,right,leftの位置を固定 or 自動調整 * width,heightの位置を固定 or 自動調整 これだけです。 これだけです!! これだけだと大したことできないんじゃないからAutoLayout使わないといけないんじゃないの?と思っている人もいると思いますので実際にAutoResizeでレイアウト何ができるか具体例を書いていきます。 サイズの自動調整 例えば上下50%ずつのVi
今年の5月くらいの話なのですが、ユビレジのiPadアプリケーションのプロジェクトで使っているStoryboardを基本的に1画面(≒1 View Controller)の単位に分割するということをしました。 1画面1Storyboardメソッドについてはnakiwoさんが書かれた記事も参考になります。 1画面から始めるStoryboard - Cocoaメモ ↑ 上記の資料はどちらかというとStoryboardを使い始めるにあたって、1画面単位で少しずつ使っていこうという感じですが、ユビレジではもともとほぼ全部の画面がStoryboardになっていました。 ただ複数人で共同作業をするにあたっては、1画面単位を1ファイルにしておくくらいがメンテナンスしやすいんじゃないかなあという結論になったのでしばらくそういうふうに運用することにしました。 また、XIBと違ってStoryboardは単純にコ
Calabash-iOSのセットアップ プロジェクトを作成したらターミナルを起動し、作成したプロジェクトディレクトリ(.xcodeprojが含まれるディレクトリ)に移動します。 $ cd some/path/CalabashSample 移動したら以下のコマンドを実行します。 $ calabash-ios setup Xcodeが動いているとエラーになるので、コマンド実行前に予め終了しておいてください! プロジェクトディレクトリの中にcalabash.frameworkが作成されていればOKです。 スケルトン作成 以下のコマンドを実行してスケルトンを作成します。 $ calabash-ios gen プロジェクトディレクトリの中にfeaturesが作成されていればOKです。 プロジェクトのビルド この状態でXcodeを起動すると、以下のようにスキーマとターゲットが作成されているはずです。C
iOS7からメールアプリ等で使用されているUITableViewCellをスワイプし表示するメニューのOSSをいろいろ試してみたメモObjective-CiPhoneiOS 更に追記 最近はMGSwipeTableCellを利用しています。SWTableViewCellが稀に認識しないことがあって他にもバグっぽい挙動で悩んだりもしたので乗り換えました。 追記 SWTableViewCellに斜め問題を改善したPull Requestをしてたのですが無事本家にMargeされました。 別でアニメーションの改善も送ってたのですが、バウンスの仕方が同じアニメーションじゃないという理由で却下されちゃいました。んー残念。 求める物はiOS7のメールやリマインダーで左スワイプにしたとき表示される感じのメニューです。 OSSを探してみたら意外と多く見つかったので、その中から個人的に良さそうなものを選別して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く