さんからこのようなご意見もいただきました。2019懇親会でもこのテーマでお話しさせていただき、やはりテスト経験のある開発者にとっては、簡単なテストは作業に近くなってしまいモチベーションも下がるという点には自分もまさに同意でした。自分の場合は、iOSでのテスト経験が0でとりあえずの練習をしたかったこと、またチェックマークの数自体が増えることにモチベーションを持っていたこともあり、これまでは特にこの点を気にしていませんでした。今後は、実効性が高いロジックに有用なテストを書いていくということを意識して、よりレベルの高いテストを実践していきたいと思いました。Testing」でした。Testingというテスト手法は、目的の画面のスクリーンショットを撮影し実際の動作と差が出ていないことを確認するための手法で、スライドにもある通りレビュー負荷の軽減や画面カタログを容易に作成することができます。iOSSnapshotTestCaseというフレームワークにより、これをUITestではなくUnitTestのレイヤーで行うことができます。github.com自分のいるPoiboyでも、リリースごとにQA担当者に実機を使って表示上の不具合を発見してもらっていますが、デバイスも多様化も相まって負担が大きいことは紛れもない事実です。そのため今後は同手法を活用してデバッグの高速化を目指したいなと思いました。懇親会では他社でのテストにおける悩みや知見をお話したり、今回お話できなかった組織的な側面についての意見交換もさせていただくことができました。までDMなりコメントなりをいただければと思います。#03での参加・登壇報告になります。その名の通り大手町近辺の企業で主催されている地域Swiftイベントです。会場提供並びに主催は日本経済新聞社さん、ホールの壁には戦後の日経平均株価の推移が書かれていたりして、まさに日本を代表する新聞社という感じの会場でした!今回のイベントで、自分は「循環的複雑度を上げないためのSwiftプログラミングTips」というタイトルの5分LTをさせていただきました。speakerdeck.com循環的複雑度は、プログラムの複雑さを定量的に表す指標の1つで、言語によらず条件分岐の数をベースとした数式で表すことができます。過去に自分は会社で「プロダクトコードの循環的複雑度(CCN)を下げる」という個人目標を設定し取り組んだことがありましたが、その際単にif文を減らすだけではCCNを下げることができませんでした。そこでいろいろと調べたり試行錯誤したりするうちに、抽象化やデータ構造の変更といった手段が必要であることがわかりました。実際にCCNを計測することはなくても、コードの複雑性を減らすために使えるテクニックとして、明日からの開発に取り入れていただけるような内容にまとめられたのではないかな思いました。参加者の方からもTwitterや懇親会で多くの反応をいただき嬉しい限りです。2019「コードの声を聞く」は名言すぎる。実装に詰まった時はコードの声を聞こう。今まではxcodeがエラーという悲鳴をあげていたけど。2019またこんなご感想もいただきました。2019今回はCCNを下げることを目的とした書き方を紹介しましたが、実際はオーバーエンジニアリングとなりかえって可読性や利便性が下がる可能性もあります。そのためご指摘の通り、自分も開発効率に影響をしない範囲で複雑性を下げていくことが大切だと思いました。5に関するトークなど多岐にわたりどれも大変面白いものばかりでした。Text」での内容が気になりました。小宮山さんの登壇資料はこちらです。2019これまで文字列リテラルを生成する際にダブルクオート(")をエスケープしたい場合にはバックスラッシュ(\)を使う必要がありました。Textは、バックスラッシュの代わりにシャープ(#)を使うことができるという仕様です。自分は過去にRubyで開発をしたときに%q記法のエスケープを使っていたので、この変更は個人的にはかなり嬉しいと思いました。発表でもあった通り、メタプログラミングやjson、xmlをStringとして直書きする場合などには特に有効な方法だと自分も思いました。併設のカフェスペースで行われた懇親会でも来場した開発者の方々と発表や開発について意見交換をすることができ、大変有意義な会となりました。2019今後も開発で得られた知見を積極的に外へ公開していきたいと思います。都内だと深夜まで営業している店も多く、たった460円でリラックスできるのでリフレッシュにオススメです。参加してきましたので、今回はそのレポート記事になります。Swiftは、Swiftに関するさまざまな技術発表が行われる国際的なカンファレンスで、過去にはアメリカのニューヨークやインドのバンガロールでも行われています。今回はなんと、30カ国から900名以上が集まっていて、実際に自分が会場を見渡した時も約半分が外国からの参加者だったように見えました。3日間の会期のうち、1日と2日目がセッションとブース展示、3日目がワークショップとピアラボという構成になっています。2日目の終了後には懇親会が行われますが、英語での会話があちこちから聞こえてくるというそんなイベントでした。2日目)セッションでは、Swiftの言語そのものにまつわる話からiOSやmacOS、テスト、サーバーサイド、IoT、さらには波形編集といったテーマまで、幅広い発表がされていました。普段の業務で扱う機会がない技術の話も含めどれも非常に面白い発表でした。今回はその中でも個人的に特に気になったものを3つピックアップしたいと思います。4.0からKVOの書き方が新しくなり、KeyPathをより簡単かつ直感的に生成できるようになりました。4以降のKVOの仕組みや活用法を知ることができました。さん)www.icloud.comこちらはSwiftで起こりがちな循環参照の問題を、コードレビューやメモリデバッガーではなくテストケースにより発見・修正する試みについての発表。APIを利用して循環参照の可能性がある場所を検知しweakを挿入するXCTAssertNoLeakというライブラリを作成されたそうです。さん)speakerdeck.com一般的なテストで用いられる境界値分析では、テストを設計するエンジニアが仕様上検証が必要そうな値を考えて入力と期待値を設定します。プロパティベーステストは、テスト対象の特性に着目しランダムにテストケースを生成するという手法で、これを簡単に導入できるSwiftCheckの紹介もされていました。(3日目)ピアラボでの講義の様子3日目は会場を変えてワークショップとピアラボが開催されました。午前のワークショップはいくつかのテーマごとに講師の方を囲みながら課題をこなしたり相談をするという内容です。ProfilerとNetworkについての説明を受けた後、質問をしながら各自が持参したコードを改善してきます。Profilerを触りながら時間の掛かりそうな処理を探しました。するとなんと、APIコール時にパフォーマンスを大きく下げるコードを発見することができました。最終的には、改善により1リクエストあたり数百ミリ秒の短縮につなげることができました!やはり実際に手を動かして新しい技術を身につけたりレビューをしてもらえるのは、ワークショップの醍醐味と言えるのではないでしょうか。午後のピアラボは、各自が好きな作業をしたり参加者と交流したりする時間です。Swiftへの参加意欲を大きく掻き立てられました。Swiftは、普段会えない海外のエンジニアと話せる絶好の機会です。自分もランチや懇親会、さらにはイベント後のプライベートな飲み会にまでお邪魔し、たくさんの海外エンジニアさんと話すことができました!ランチに出会ったとあるエンジニアさんとは、アプリの各設計思想に対するお互いの考えや少人数チームでのスキルアップ方法について議論しました。懇親会ではカザフスタンから来たというエンジニアさんに話を聞くことができ、日本と違って国内にまだデベロッパーが少なく情報を仕入れるのが大変だという話をしました。このようにエンジニアが考えたり悩んでいることは万国共通なんだなと思いながら、同時に日本は情報にもモノにも恵まれていてありがたいなと改めて実感しました。参加者専用のSlackが用意されており、イベントの終了後も活発な交流がされているのが印象的でした。自分もたまたまイベント後に打ち上げをしてところにお邪魔し、イベント外でも大変楽しい時間を過ごせたのが良かったです。全体を通じた印象や感想iOS以外の分野でのSwiftが広がっている昨年あたりからサーバーサイドSwiftの話を少し聞いてはいたのですが、今回はそれ以外の分野でのSwiftの利用例の発表が目立ちました。個人的にはあまり追っていなかった情報なので、今年は少し注目していきたいと思いました。Swiftのノベルティも各社デザイン性や機能性の高いものばかりでした。Swift公式キャラクターのrikoちゃんがプリントされたトートバッグもかわいいですね、さっそく普段遣いしてます。Swiftに参加してきましたが、予想以上に濃い時間を過ごすことができました。Swiftをはじめとした技術カンファレンスへの参加・登壇を推奨しており、参加費も補助してもらえる制度がありますこうした社外活動にも興味を持たれた方はぜひ自分またはお近くの社員へお気軽にお声がけいただければと思います。PodcastABOUT株式会社Diverse(ダイバース)開発者ブログです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。