There is no silver bullet to organizing code. Everything from the code design patterns to third-party dependency management solutions change based on how a project is architected. This post aims to provide an explanation of the concepts and tools that can be used to better organize and manage your own projects. Table of Contents Workspace Files Managing Projects Project Files Nested Projects Targe
A tool to enforce Swift style and conventions, loosely based on the now archived GitHub Swift Style Guide. SwiftLint enforces the style guide rules that are generally accepted by the Swift community. These rules are well described in popular style guides like Kodeco's Swift Style Guide. SwiftLint rules are predominantly based on SwiftSyntax. Some rules still hook into Clang and SourceKit to access
XCTest: The Good Parts March 3, 2015 Since my last post about testing, I've been involved with a discussion on Twitter with Apple's Joar Wingfors: @modocache I’d love to talk about that too! @jspahrsummers @rob_rix — Joar Wingfors (@joar_at_work) February 28, 2015 I was especially excited at the opportunity to provide feedback on XCTest: @modocache We have a small dedicated team doing our best to
Xcode 6 の新しい仕組みである Size Class を使い、 iPad (Universal) iPhone 6 (4.7 inch) iPhone 6 Plus (5.5 inch) の複数画面サポートを行なった際の断片的なメモ集です。 同じく Xcode 6 から Asset Catalog でベクター形式がサポート されるようになったので、こちらについてわかったこと等も書いてあります。 ※ちなみに Size Class やベクター形式画像の使用は iOS 8 以上縛りではありません。単に Xcode 6 の新機能というだけなので。 Size Class 前提知識をつける Size Classsとは クラスメソッドさんの下記記事が日本語、図解入りでとてもわかりやすいです。 マルチデバイス対応の新機能「Trait Collection」 Size Class 機能を使って複数画面
"Remote" is a plugin for Xcode that allows you to control an iPhone from a window on your Mac during development. Originally created to avoid having to pick up a device during testing you can record "macros" of device touches and replay them. It will also compare the resulting screen output against a snapshot for end-to-end testing. The Macro log is an editable WebView that can be modified at will
はじめに Xcode 6 でユニットテストのようにパフォーマンスをテストする機能が追加されました。 これによって重そうなロジックにパフォーマンスの測定を設定しておき常に計測することができます。 例えば、画像や動画、音声など圧縮データのエンコード/デコード処理、大量のデータをソートする処理、暗号化する処理などが、ざっと思いつく重い処理です。 今回はサンプルとしてログ出力で追加されたprintlnとNSLogのパフォーマンスを比較してみます。 測定してみる パフォーマンスの測定はユニットテストと同じように扱われますが、Assertがある訳ではなくself.measureBlock()の中で呼び出されたコードが計測対象になります。 新規にプロジェクトを作成するとTestクラスが作成されますが、そこにもself.measureBlock()が作成されるようになりました。 今回必要なソース テストさ
Xcode6からSizeClassesという概念が加わったのと、AutoLayoutも微妙に変更されていて謎のMarginが出るようなので調査した結果をまとめました。 SizeClassesとは Xcode6からAutoLayoutに加え、SizeClassesという概念が加わりました。 Xcode5では、Universalアプリを作るには、iPhone向けとiPad向けのStoryboardをそれぞれ用意していましたが、Xcode6/iOS8からは、一つのStoryboard(あるいはXib)で対応させてしまおう、というのがSizeClassesです。 考え方としては、iPhoneやiPadの特定のサイズではなく、抽象的なサイズを扱うということです。ですので、今まで以上にAutoLayoutの制約によるレイアウトデザインが重要になります。 注目すべきは赤枠で囲った2箇所です。 まず右側。
2014/02/09 追記 コメントのところでやり取りしているようにmergepbxの作者さんから連絡があって、この記事で書いた問題が修正されました! 今現在は merge=mergepbx がいい感じになってきているのでそっちがオススメです。 複数人でプログラミングしているとpbxprojがやたらとコンフリクトする 例えば、 Aさんが AALabel.m をプロジェクトに追加して Bさんが BBLabel.m をプロジェクトに追加して とただそれだけなのにマージのときにコンフリクトするpbxprojさん。。。 ただそれぞれファイルを追加だけのことでコンフリクトするなんて… どうにかならんもんかいとTwitterでつぶやいたところ、 @azu_re さんから有り難い教えが! @tokorom gitはファイル別にマージ方法を指定できるので、mergepbxみたいなのをpbxprojのマージ
WWDC2014で発表された、Xcode6のXCtestに追加された新機能について、説明した資料です。 この資料では、以下の項目について説明しています。 * 非同期API * パフォーマンステスト
以前作ってGithubに公開していた CrashMonkey というツールについて紹介します。 Github:CrashMonkey CrashMonkey概要 iOSのアプリケーションをモンキーテスト(ランダムな操作をひたすら行う)するためのツールです。 動作イメージはこのデモ動画を御覧ください。 iPhone Simulatorの操作にはUIAutomationを使っていて、ベースとしてui-auto-monkeyを使わせて頂きました。 動作環境 以下の環境でのみ確認してあります。 Max OS X 10.8.4, 10.9.4 Xcode 4.6.3(Build version 4H1503), Xcode5.1.1 Ruby 1.8.7-p371 Rubyについては、1.9系, 2.0系でも動くと思います。 特徴 良い点 アプリのプロジェクト自体に変更を加えなくても実行することがで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く