Swift実践入門刊行記念イベント Feb 24 2017
効率よく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で
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
寒さも和らぎ、日によっては春の訪れを感じさせる今日この頃、いかがお過ごしでしょうか。春といえば Swift です。Swift は春と秋に、まるで衣替えのように大きなリリースがあります。2016年の春と予告されていた Swift 2.2 は、おそらく来週には正式にリリースされるものと思われます3月22日にリリースされました。 Swift 2.2 は、バグの修正や警告や診断の改善、コンパイル時間や実行速度の向上が主目的であるとされ、それに加えて Swift 2.0 以来のちょっとした機能向上を図ってのリリースとなります。Swift2.2 は OSS となった Swift の初めてのバージョンアップでもあります。すなわちコミュニティからの直接的なフィードバックを経た、最初の Swift と言えるでしょう。そんな Swift 2.2 の変更から主だった(おもしろい)部分を紹介します。 春に備えて準
この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2015 の投稿記事です。 こんにちは。英語サプリのiOS担当の大島です。英語サプリは10月末にリリースしたばかりのサービスで、アニメーションやBGM・効果音を取り入れたゲーム感覚の英語学習アプリです。iOS版とWeb版がリリース済みでまだサービスは始まったばかりですが、開発期間も短い中でクオリティにこだわってローンチすることが出来ました。当エントリでは、iOSアプリケーションの設計手法について紹介していきたいと思います。 DDD(ドメイン駆動設計)で複雑さと戦う 複雑なiOSアプリケーション開発をしていると以下のような問題点で悩まれているエンジニアの方も多いのではないでしょうか。 すぐにFatになってしまうUIViewController 複数のフラグで状態を管理するUIViewContro
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
enum の associated value e n u m E i t h e r < A , B > { c a s e L e f t ( A ) c a s e R i g h t ( B ) } l e t e i t h e r : E i t h e r < A , B > = . . . s w i t c h e i t h e r { c a s e . L e f t ( l e t a ) : p r i n t ( " A : \ ( a ) " ) c a s e . R i g h t ( l e t b ) : p r i n t ( " B : \ ( b ) " ) } これでもいいの? e n u m E i t h e r < A , B > { c a s e L e f t ( A ) c a s e R i g h t ( B ) } l e
iOS オールスターズ勉強会の最速レポート公開! こんにちは、横山です。iOSエンジニアの方であれば、大注目のiOSオールスターズ勉強会の最速?レポートしたいと思います。 我らiPhoneアプリサービス事業部のエース平井も、今回のイベントで「エンジニア戦記 ~ 小さなチーム 大きな未来 ~を発表させていただいたので、是非スライドをご一読いただければと幸いです! 主催協力 今回のイベントは、dots.様、がイベントの企画・運営を主導していただき、加えて維新株式会社様が協賛運営いただき 今回のイベントを開催の運びとなったそうです。当日はdots.の方々に司会進行や受付など、イベント進行全般に関して大変お世話になりました。 �参加者も定員の370人を超えて、キャンセル待ちもでる。注目度の高いイベントになりました。 会場 会場は恵比寿駅から少し歩いた、綺麗なビルの9Fで、エントランスもオシャレでし
by @mixiappwchr アプリ向けのAPIの開発時に気をつけてもらえるとうれしい&メンテナンスや実装コストが下がる点をつらつら書きます。 データ構造について データを返すとき、一定のルールを守って返す。例えば当然ですが同じデータ構造はもちろん、似たような構造もルールを作ってproperty名などそろえておく。relationやlistで返すときもどのデータ構造なのかがpropertyで明確にわかるようなっているようにする listを返す場合の形式やpagingが必要な場合の形式はそろえる。配列のデータがない場合も考慮しておく。例えば、データがない場合にNULLにするか or 空配列にする or property自体がないなどきめる pagingの場合とか複数のパターンが存在することを覚えておくと幅が広がる。単純なページング or twitterみたいなsince_idなど起点id以
結論 小手先で楽をするためのボトムアップな設計は後々苦労する 継承を使った差分プログラミングは長年運用していくと大変だ 人は楽な方に流れるので、Baseクラスで解決すべきでない問題をBaseクラスで解決して後で困る はじめに この文章は2015年1月のpotatotips13で発表するネタ用のメモに書いてました。 実際に発表した内容を含む様子は下記のページにまとめています。 http://curiosity.co.jp/potatotips13/ 会場で質問されたりツイートの様子を見てて気づいたのですが、BaseViewControllerを使いたくないという"この文章"と同意の意見は、比較的経験のあるおじさんたちの意見であって、若い人からするとなぜBaseViewControllerを使ってはいけないように言われるのかについて具体例を聞きたがる傾向が強いです。 また、不必要に自分が気に入
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!キーボード PM 兼 iOS アプリ開発の千葉俊輝です。 今回は、iOS 8 で新たに追加された Custom Keyboard の作り方とYahoo!キーボードで使われているテクニックやプロダクトとしての成功ポイントを紹介します。 iOS 8 Custom Keyboard ? これまで、ユーザーは標準キーボードしか利用できませんでした。 iOS 8 ではサードパーティ製のソフトウエアキーボードが作成可能となったので、ユーザーは好みや目的に応じてキーボードを使用できるようになりました。 iOS 8 Custom Keyboard の全体図 キーボードアプリ全体の流れはこの図の通りです。 次のセクションで
iOSやAndroidで利用できるモバイル向けデータベース「Realm」を開発しているRealm Incより、2014年中に作られた12個のSwiftプロジェクトをピックアップするスペシャル企画「The 12 Apps of Swiftmas」が公開されています。 同企画で紹介されたSwiftで作られたプロジェクト/アプリは以下の通り。 Bluecap: Bluetooth LEフレームワーク。 Burst2GIF: 最近のiPhoneで使えるバーストモードで撮影した写真からGIFアニメを作成することができるアプリ。 GroceryList: 雑貨類のリストを家族間で共有することができるアプリ。 Realm: オープンソースのモバイルデータベース。Core Data & SQLiteの代わりに。 Heartbeat: 心拍数をモニタリングするApple Watchのデモアプリ。 jazzy
この記事はSwift Advent Calendar 17日目の記事です。 Swiftを始めて、最近では仕事でもいくつか徐々にSwiftに移行し始めています。その中で、時折ObjCを使った黒魔術に出会うことがあります。これらは、ObjCの文化であり、Swiftでもきのこって行けるのだろうかと思いましたので、今回試してみました。 諸説ありますが、自分の中ではObjecitive-Cの黒魔術といえば、つまりObjective-Cのランタイム関数です。 SwiftでもObjective-Cのランタイム関数は利用可能です。ランタイム関数はC言語の関数ですが、Swift自体はC言語との互換があるので使えるんですね。 ランタイム関数を利用するにはObjectiveCという名前のモジュールをインポートします。 ランタイム関数には色々な関数が用意されています。 今回はそのうち最もよく使われているであろう(
ObjectiveCで用意されていた関数や,ObjectiveC関連の情報をあさっていると,頻繁にクロージャに出くわす. [hogeSuccess:^{ hogehoge; }]; よく,クロージャとかブロック構文とか呼ばれるヤツだ. ^自体はブロックと呼ばれるもので,これを関数の引数に渡しているから,ブロック変数とか呼ばれていたりする. 使用方法は関数の引数に限らず,他のところでも使えるのだが,とりあえずこれをブロック変数として使っているメソッドが,結構いっぱい用意されている. swiftでクロージャが定義されているメソッドを呼ばなきゃいけないときや,自分でクロージャを使いたいことがよくあるのでメモしておく. 引数を取らないクロージャをsiwftで // 定義 func hogeSuccess(success:()->Void) { // なんか処理 success() } // 呼び出
This article examines two implementations of a logic puzzle written in Swift. The first example uses an imperative programming style, which is the style familiar to most iOS developers. Then we see the same small program written in a functional style, which is facilitated by several Swift language features. Get the source code at https://github.com/ijoshsmith/break-a-dollar The logic puzzle A few
iPhone6,6Plus サポートとか LaunchScreen.xib とか Size Class とか考えると、もはや Autolayout は必須な感じになってきてます。 http://d.hatena.ne.jp/shu223/20141002/1412209257 で、Autolayout ✕ UIScrollView の例の問題(UIScrollView のサイズを superview との制約で動的に変えるときにその中身も動的に変えたい、ってやつ。こんな雑な説明でもハマったことある人にはわかっていただけるかと・・・)、Apple 公式でこんなドキュメントが出てますが、 Technical Note TN2154: UIScrollView And Autolayout "Mixed Approach" とかなんか筋が悪い感じだし、"Pure Auto Layout Appr
これは,こちらのサイトによると, Depending on your requirements, this may or may not be what you want, but it is certainly consistent with the overall design of the String type to abstract away as many Unicode details as possible. Rule of thumb: if two strings look equal to the user, they will be equal in your code. つまり,「Unicodeでの実装にかかわらず,ユーザ側からの見た目が同じであるからには,コード上でも同一として扱われるべきである」という原則に基づいているとのことです。 実際,この仕様はApple
(WWDC 2014 発表資料より引用) つまりどういうこと? iOS 8 から位置情報の取得方法が変わるようです。今までの方法だと位置情報が取れなくなります。(すでにAppStoreに並んでいるアプリについてはこの限りではありません) iOS 8 : Location Services not working My app that worked fine in iOS 7 doesn't work with the iOS 8 SDK. CLLocationManager doesn't return a location, and I don't see my app under >Settings > Location Services either. I did a Google search on the issue but nothing >came up, what cou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く