iOSDC 2021 での登壇資料となります。 登壇内容 https://www.youtube.com/watch?v=yWO47AFkDls 以下、スライド内に登場するリンク一覧です。 MoT Teck Talk vol.3 「タ…

最近フォント周りについて深く掘り下げる機会がありましたので、その際のメモを残しておこうと思います。かなり読む人置いてけぼりな中身になってますが、フォントを詳しく触り始めるとなるほどーとためになる(と思う)のでどうかご了承ください(´・_・`) UIFontのプロパティについて UIFontにはフォントに関する数値を表すプロパティが存在します。いろいろありますが、もっとも重要なのは以下に列挙するプロパティです。 pointSize lineHeight ascender descender leading capHeight 以下の画像を見ると非常にわかりやすいかと思います。 参照元: https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/Cus
効率よくiOSアプリ開発を行うために、効率よくデバッグを行いたいですよね。 このエントリでは「print文を書く以外デバッグの方法を知らなかったあの頃の自分」を初級者と定義して、自分がやってるデバッグ方法について書いてみます。 Xcodeデバッグ術 1. printを使わずに変数の中身を確認する age, name, coverImage という以下の3つの変数が宣言されています。 let age = 27 let name = "Ryosuke Hiramatsu" let coverImage = UIImage(named: "sample.jpg") これらの変数の中身をチェックしたい時、printで出力するのでも良いですが、それでは出力する値を変えたくなった時(print(age)をprint(age*2+1)に変更とか)に再度ビルドが必要になって時間がかかります。 printで
【追記】SFSafariViewControllerが出た当初は本記事のようにほぼカスタマイズ性が無かったですが、元々のコンセプトはブレない範囲で少しずつカスタマイズ性が提供されています。 こちらなどご覧ください: What's New in Safari View Controller - WWDC 2017 - Videos - Apple Developer 以下、iOS 9 SDK時点での SFSafariViewController についてです。 UIWebView・iOS 8で追加されたWKWebViewに加えて、iOS 9ではSFSafariViewController というものが追加されました。 手軽なAPIなので、今作っているPlayer!にもちょちょいと組み込めそうです( ´・‿・`) ※ 本記事は Apple による公開ドキュメントを元に構成しています SFSaf
Xcodeのデバッグモードはアプリを終了させると終わってしまう。 なので、アプリが終了している状態からPush通知やURLスキーマ経由で起動させた時のデバッグをしようとしても一筋縄にはいかない。困った。 方法を探したらstackoverflowに答えがあったので、スクショを交えつつ備忘ログ。 「アプリを終了してもデバッグモードを維持する」のではなく「実行しても勝手に起動しないでおく」という考え方 どうやらこの考え方がキモらしい。アプリを終了させても "Finished runnning" にならない方法を探していたけど、この考え方が間違っていた。ビルドが成功しても勝手にアプリが起動されなければ、Push通知なり何なりから好きなように起動できる、というのが正解。 1. Edit Scheme を開く 2. Info タブの Wait for executable to be launched
iOS オールスターズ勉強会の最速レポート公開! こんにちは、横山です。iOSエンジニアの方であれば、大注目のiOSオールスターズ勉強会の最速?レポートしたいと思います。 我らiPhoneアプリサービス事業部のエース平井も、今回のイベントで「エンジニア戦記 ~ 小さなチーム 大きな未来 ~を発表させていただいたので、是非スライドをご一読いただければと幸いです! 主催協力 今回のイベントは、dots.様、がイベントの企画・運営を主導していただき、加えて維新株式会社様が協賛運営いただき 今回のイベントを開催の運びとなったそうです。当日はdots.の方々に司会進行や受付など、イベント進行全般に関して大変お世話になりました。 �参加者も定員の370人を超えて、キャンセル待ちもでる。注目度の高いイベントになりました。 会場 会場は恵比寿駅から少し歩いた、綺麗なビルの9Fで、エントランスもオシャレでし
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? by @mixiappwchr アプリ向けのAPIの開発時に気をつけてもらえるとうれしい&メンテナンスや実装コストが下がる点をつらつら書きます。 データ構造について データを返すとき、一定のルールを守って返す。例えば当然ですが同じデータ構造はもちろん、似たような構造もルールを作ってproperty名などそろえておく。relationやlistで返すときもどのデータ構造なのかがpropertyで明確にわかるようなっているようにする listを返す場合の形式やpagingが必要な場合の形式はそろえる。配列のデータがない場合も考慮しておく。例
覚え書きのようなものです。 他のプロジェクトで使ったクラスファイルなどが、 以下のようなエラーでビルドできなくなったとき。 ld: symbol(s) not found for architecture -i386ld: symbol(s) not found for architecture armv7原因としては、とりあえず以下の2つが考えられるようです。 必要なframeworkが追加されていないライブラリなどの場合、コレが多いです。 SystemConfiguration.framework とか 必要だったら追加すると直る可能性は無きにしもあらず。 ファイルをコピーする際にtagetsにチェックを入れていない私の場合、原因はコレでした。 クラスファイルをコピーする際に、 「Add to targets」にチェックを入れたところ正常にビルドが通るように。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 結論 小手先で楽をするためのボトムアップな設計は後々苦労する 継承を使った差分プログラミングは長年運用していくと大変だ 人は楽な方に流れるので、Baseクラスで解決すべきでない問題をBaseクラスで解決して後で困る はじめに この文章は2015年1月のpotatotips13で発表するネタ用のメモに書いてました。 実際に発表した内容を含む様子は下記のページにまとめています。 http://curiosity.co.jp/potatotips13/ 会場で質問されたりツイートの様子を見てて気づいたのですが、BaseViewControll
iOSアプリにも継続的インテグレーション環境を こんにちは!今日からMacDownでブログを書いています。荒川です。 モダンなWeb開発では馴染み深くなってきた、CI(継続的インテグレーション)環境を iOS 開発でも弊社では積極的に取り入れています。社内での共有も兼ねて、今回は簡単にまとめます。 「継続的インテグレーション」と聞くととても難しそうで、設定も大変そうです。ですので、最低限コピペで作れる程度の環境構築方法を紹介します。 iOS 開発での CI とは何かを詳しく知りたい方は、弊社諏訪の記事 iOSアプリ開発でCI/継続的デリバリ環境を始めるための4種の神器 を参考にしてください。 今回構築する環境は、以下に該当する方に最適です。 gitを使って iOS 開発を行っている。 チーム内でチャットツールを使っていて、そのAPIが公開されている。 テストコードを書いている。または、その
English UIAppearance の proxy メソッドから見た目を変更して、即時全画面に適用する方法を調べていて、UISS という iOS で JSON 形式の Stylesheet を扱うライブラリにその答えがあったので、メモです。 UISS#refreshViews - (void)refreshViews { [[NSNotificationCenter defaultCenter] postNotificationName:UISSWillRefreshViewsNotification object:self]; for (UIWindow *window in [UIApplication sharedApplication].windows) { for (UIView *view in window.subviews) { [view removeFromSup
ついに実現!合同勉強会!! 2014年10月9日(木) 19時より、クラスメソッド株式会社@東京秋葉原にて Developers.IO Meetup 09 クラスメソッド & ゆめみ 合同勉強会 を開催しました。 先日開催した【CM Tech Talk】 〜クラウドとスマホアプリの先端技術に触れてみよう〜 Developers.IO Meetup 07に参加していただいたゆめみさんからお話をいただいたのがきっかけで今回の合同勉強会開催が実現しました。 弊社としても、「合同勉強会」を開催した例は多くなく当初は手探りでの企画となりましたが、今回も大変多くの方にご参加いただきまして誠にありがとうございました。 TestFlightはTestFlightではない アンダースコア株式会社 諏訪悠紀
https://www.youtube.com/watch?v=XhXC4SKOGfQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 FacebookのiOSチーム、Adam ErnstとAri Grantによる@Sacle 2014での講演。データモデルとビューレイヤの改善の取組みについて紹介してくれてます。 1) データモデル 背景 2年前からHTML5からネイティブに切り替えて一旦大きく改善したが、その後機能を追加するたびにアプリのパフォーマンスが悪化。 ネイティブに移行後、オブジェクトのキャッシュレイヤとしてiOSのCore Dataを使ったのが失敗であった。 Core Dataの役割は「整合性を含むオブジェクトグラフ管理」 Facebook iOSアプリの場合、サーバ側を正のデータとするが、
注意: beta 5時点での情報です iOS8で追加される待望のApp Extensionですが,あくまでExtensionなのでContaining appを呼び出したくなることがあると思います. App Extension Programming Guideにもあるように,App ExtensionとContaining appとの連携にはShared resourcesのほかにOpen URLを利用します. Open URLというと従来より形式化された手法ですので,とくにはまりどころは無いと思っていたのですが,はまりどころがあったので紹介させていただきます. App ExtensionにはUIApplicationが無い Open URLといえばご存知のようにUIApplicationを取得すればお気楽に実装できるのですが,App ExtensionにはUIApplicationのo
Apple Push Notification (APN) 使用時の delegate の挙動について、 iOS 7以降 / iOS 6以前の差をまとめた iOS 7以降とiOS 6以前で、俗にいうリモートPush通知の受け取り方と受け取った際の挙動がまるで違っているので、最近リモートPush通知を実装した時につまづいた箇所をまとめてみました。 使用するdelegate methodの違い いかなる種類のPush通知においてもapplication:didReceiveRemoteNotification:fetchCompletionHandler:を使用します。 application:didReceiveRemoteNotification:fetchCompletionHandler:とapplication:didReceiveRemoteNotification:が両方実装され
フリマアプリFrilのリニューアルを題材に、iOS開発でのコードレビュー事例を紹介します
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く