タグ

ブックマーク / blog.penginmura.tech (66)

  • 『iOSテスト全書』を共著した話。あるいは『教科書本』との違い。 - ペンギン村 Tech Blog

    どうも、最近はRabi-Libiという弾幕アクションゲームをやっているtobi462です。 というわけで、PEAKSから『iOSテスト全書』の電子版が正式リリースされました。 peaks.cc おそらく製版も今月中には発送されるかと思います。 (ところで一般販売はされるのでしょうか?私、気になります!) 追記:一般販売が開始されました! iOSテスト全書 著者: 松尾 和昭,細沼 祐介,田中 賢治,平田 敏之,玉城 信悟, 製版,電子版 PEAKSで購入する そんなわけで、個人的にどういう想いを込めて執筆したのか、みたいなことを自分なりに振り返りながら書いてみたいと思います。 担当した章 私は著者陣の一人として、以下の章の執筆を担当させていただきました。 第2章:ユニットテスト(概要) 第4章:ユニットテスト(Quick / Nimble 編) 第5章:BDDによるアプリ開発 なお、第

    『iOSテスト全書』を共著した話。あるいは『教科書本』との違い。 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/11/08
    書きました。
  • iOSDC2019に参加してきました! - ペンギン村 Tech Blog

    かむいです。東京に台風15号が接近中です。雨風の音が凄い。。 iOSDC 2019に、今年も村から僕と@tobi462氏で参加してきました。 この光景を見るとiOSDCに来たなぁってなります iOS13から登場するダークモード仕様になってました 今年もCfPを幾つか投下したのですが、粉砕☆玉砕☆大喝采☆ そんなボツネタを来月弊社で開催するmeetupにて発表するので、ご都合がよろしければ是非遊びに来てください。 dmm.connpass.com 昨年参加した時にも書きましたが、普段カンファレンスでお会いする顔なじみの方、今回初めてお会いした方と、1年に1回この場で会える機会は当に同窓会・文化祭の楽しさがありますね。 実行委員長の@tomzoh氏も話していましたが、iOSDC = コミュニケーションの場だなと強く感じさせられます。 今年の1セッションの時間は30分, 60分枠となり(LT除

    iOSDC2019に参加してきました! - ペンギン村 Tech Blog
  • メモリリークを検出して修正する方法【Xcode】 - ペンギン村 Tech Blog

    この記事の目的 ビルド前の準備 メモリリークの検知 メモリリークの原因を特定する 原因を特定するときのTips メモリリークの修正方法 まとめ その他備考 この記事の目的 iOSアプリにおけるメモリリークの対処法を紹介します。 例えば、以下の画像のような、一見複雑な循環参照が原因のリークも簡単に直せるようになります。 ビルド前の準備 Edit SchemeでMalloc Stack LoggingをONにしておきます。 これで各クラスインスタンス生成時に実行されたコードを見ることができます。詳細は後述します。 「Edit Scheme」で「Malloc Stack Logging」をONにする メモリリークの検知 デバッグビルドしてから、アプリを操作*1した後に'Memory Graph'を開きます。 Memory Graphを開くボタン Xcode左端のDebug Navigatorを見

    メモリリークを検出して修正する方法【Xcode】 - ペンギン村 Tech Blog
  • 今年の iOSDC に対応した「このすばCfP2」をリリースしました。 - ペンギン村 Tech Blog

    どうも、WWDC19に行ったついでにサンフランシスコでべたカニの味が忘れられない @tobi462 です。 さて、そんなわけで今年も iOSDC の CfP を快適に検索できるサービス「このすばCfP」をリリースしました! iosdc19-cfps.penginmura.tech アニメでいうなら2期という感じでしょうか。 せっかくなので、軽く開発ストーリを記事にしてみたいと思います。 今年は必要ないかも? Flutter で作ろう 再始動 開発・リリース かむい shi より一言 おわりに 今年は必要ないかも? 去年、iOSDCに投稿されたプロポーザルを快適に検索・閲覧できるサービスが欲しい、という思いから通称「このすばCfP」をリリースしました。 しかし、正直なところ今年は開発すべきかどうか迷っていました。 というのも、公式のプロポーザル一覧の検索機能が向上したため、あえて情報源を増

    今年の iOSDC に対応した「このすばCfP2」をリリースしました。 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/06/24
    書きました。
  • try! Swift 2019 TOKYO で登壇してきました。 - ペンギン村 Tech Blog

    どうも、最近は ウマ娘 プリティーダービー というアニメにハマっている @tobi462 です。 ちなみにセイウンスカイちゃんが一番好きです。 さて、すでに結構時間が経ってしまいましたが、try! Swift 2019 TOKYO で登壇してきたのでその感想的なブログ記事です。 www.tryswift.co speakerdeck.com LT採択から20分トークへ 今回、2日目の午後に20分トークで発表させていただいたのですが、実はもともとLTの予定でした。 ですが、当初予定していた20分トークのキャンセルがあったとのことで、運営から「20分で発表してみませんか?」という提案をいただき、せっかくの機会なので快諾させていただきました。 何を話すか(あるいは何を話さないか) もともとLTの予定で提出したCfPなので、最初はまさにライトニングトークというようなスピーディーな発表をしようと考え

    try! Swift 2019 TOKYO で登壇してきました。 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/04/06
    書きました。
  • Bonfire iOS #5 に参加してきました - ペンギン村 Tech Blog

    どうも、 try! Swift 2019 TOKYO で登壇したのにいまだにブログを書いてない @tobi462 です。 今回はすごく久しぶりに勉強会に参加してきたのでそのレポートです。 yj-meetup.connpass.com Bonfire iOS は今回で5回目の開催で、今回は テスト がテーマということでした。 try! Swift でもProperty-based Testing / SwiftCheck で発表するくらい、テストの自動化に興味を持っているので、今回は絶対参加せねば・・・と思いブログ枠で参加させていただきました。 今回はキュレーターである @kumamo_tone さんのチョイスでYahoo!社内外のあわせて5名からの発表がありました。 テストは書かないと宣言していたアプリの現在 最初は @fromkk さんの発表でした。 メモ 振り返り 度重なる判断ミス ア

    Bonfire iOS #5 に参加してきました - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/03/31
    イベントレポートを書きました。
  • 自由にクラスインスタンスにアクセスできるLLDBコマンド「vinfo」 - ペンギン村 Tech Blog

    自己紹介 vinfoとは 使用方法イメージ 使い所 使い方 備考 SwiftのStuctには vinfoではアクセスできません。。 自己紹介 ペンギン村の通行人 、po_miyasakaです。 名前の「po」はLLDBのコマンドから拝借しました。 (プロダクトオーナーでは🍆😎) vinfoとは github.com pythonで実装されたLLDB用カスタムコマンド 任意のアドレスからデバッグ用変数を生成する程度の能力を持つ (クラスインスタンスのアドレスに限る) SwiftもしくはObjective-Cで利用可能 使用方法イメージ アドレスからインスタンス生成デモ https://po-miyasaka.github.io/ezgif-2-f0ca03bf9732.gif Debug Memory Graphからインスタンス生成デモ https://po-miyasaka.githu

    自由にクラスインスタンスにアクセスできるLLDBコマンド「vinfo」 - ペンギン村 Tech Blog
  • ペンギン村のロゴ・ステッカーを作った話 - ペンギン村 Tech Blog

    どうも、今さらラブライブにハマっている @tobi462 です。 なにそれイミワカンナイ? さて、今回はペンギン村のロゴ・ステッカーが出来るまでの話です。 ロゴ原案を担当した私と、デザイナへの発注・ステッカー作成を担当した かむい 氏の2名でお送りします。 完成したステッカー 記事の前半は私、後半は「かむい」氏がお送りします。 ペンギン村のロゴが欲しい! ロゴのデザイン(原案) 第1案:村にある小屋で開発 第2案: 漢字の「村」にペンギンを融合 デザイナへの発注 ステッカーの作成 おわりに ペンギン村のロゴが欲しい! 以前より「ペンギン村のロゴが欲しい」という話が出ていました。 ペンギン村はただの技術者どうしの集まりですが、iOSDC 2018 では このすばCfP なんてサービスを公開したりもして、シンボルとなるロゴが欲しいという空気感が高まっていました。 しかし、ペンギン村にはデザイン

    ペンギン村のロゴ・ステッカーを作った話 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/02/12
    ロゴの原案を担当しました。
  • ペンギン村開発合宿 in 土善旅館 - ペンギン村 Tech Blog

    はじめに おは椎名!かむいです。 今回、ペンギン村で初の開発合宿を敢行しました。 スペシャルゲストとしてダンボー氏, やみつき氏にもお越し頂き、千葉の土善旅館に行ってきたイベントをレポートしたいと思います。 なお当日の感想はTwitterにて #ペンギン村開発合宿 というハッシュタグを作って頂いたので、当日の様子についてはそちらを見て頂いても良いかもです。 都心部でも雪が積もる天気でしたが、旅館の庭園の雪化粧が見れてとてもエモかったです 土善旅館のここがスゴい!(声: 中井和哉) エンジニアのための開発合宿プラン、弓道場を備えた弓道合宿プランがある デザイナー, 漫画家などの執筆者のための原稿合宿執筆プランもある 温泉が24時間入れる と開発ができる 看板が何匹かいるらしい。圧倒的可愛さ 今回は開発部屋に遊びに来てくれず(´・ω・`) 寒さのせいでどこかでまったりしてたのかな? 実際に

    ペンギン村開発合宿 in 土善旅館 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/02/12
    とても楽しい合宿でした!(誤謬力ぇ
  • Swift プログラマが Go言語を学び始めた話(後編) - ペンギン村 Tech Blog

    以下の記事の続きです。 blog.penginmura.tech blog.penginmura.tech 最後となるこの記事では、ここまで紹介してこなかった細かい機能や、Go言語における並列処理を実現するゴルーチン・チャネルについて触れ、最後に Go 言語に対する総括的な感想を述べて終わりにしたいと思います。 defer Swift でも用意されている defer は Go言語で初めて採用された仕組みらしい。どちらもリソースの後片付けなどに利用できる。 概略 次の例では Mutex ロックを確保した直後に defer でロック開放のコードを書くことで、関数を抜けたタイミングで確実にロック解放がされるようにしている。 func increment() { mu.Lock() defer mu.Unlock() count++ } Swift で同等のAPI が用意されていれば次のようになる

    Swift プログラマが Go言語を学び始めた話(後編) - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/01/30
    最後の記事です。
  • Swift プログラマが Go言語を学び始めた話(中編) - ペンギン村 Tech Blog

    以下の記事の続きです。 blog.penginmura.tech 制御構文 Go言語の制御構文としては次のものがある。 if switch for ゴルーチン・チャネルにおいて利用できる select という制御構文もあるが、それは後ほど触れることにする。 if 文 基的な書き方は Swift とほとんど変わらない。次のコードは Go言語 / Swift ともにコンパイルできる。 if 0 <= x && x < 100 { } else { } Go言語では if 文において事前にローカル変数を宣言することができ、これは Go言語におけるエラー処理のパターンで多用される。前編において 0除算された場合にエラーを返すDiv関数を呼び出した例として、次のようなエラー処理を記述した。 n, err := Div(6, 2) if err != nil { panic("error!") }

    Swift プログラマが Go言語を学び始めた話(中編) - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/01/27
    ]続きを書きました。
  • Swift プログラマが Go言語を学び始めた話(前編) - ペンギン村 Tech Blog

    私は Rust に賭けていた。ポストC++言語としての地位をどのプログラミング言語が取るか、もっといえば Rust vs Go でどちらが勝つかという話においてだ。 私が初めてGo言語を知った時は、こんな非力なプログラミング言語のどこが良いのだろうという感想だった。シンタックスはC言語を踏襲しているもののなんだか奇妙に見えたし、例外もジェネリクスも無いプログラミング言語が流行るわけ無いと思った。もちろんそれが意図的であるというWeb記事をいくつか読んだあとでもだ。それにGCを採用した言語がそれほどの高速さを得られるのかという点においても懐疑的であった。 しかし、予想に反してGo言語は相当受け入れられたらしい。 コンテナ界の世紀末覇者先輩であるDockerGo言語で書かれているし、私の愛するKubernetesやその周辺ツールまでもがGo言語で書かれているらしい。 それに比べて Rust

    Swift プログラマが Go言語を学び始めた話(前編) - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2019/01/24
    理解は浅いけど書き始めてみた。
  • Haskell で doctest(unittest)と QuickCheck(Property-based Testing) - ペンギン村 Tech Blog

    どうも、年末年始に飲むワインはバッチリ買い揃えた @tobi462 です。 なんだか、ひょんなことからすごく久しぶりに Haskell を書いたのですが、そもそも doctest のインストール方法とかもすぐに分からなかったのでメモも兼ねて。 Tl;Dr -- | 文字がすべて異なるか判定する。 -- -- >>> isUnique "" -- True -- >>> isUnique "a" -- True -- ... -- -- ユニークな文字列は、ソート・グループした文字数の長さと、元の文字列の長さが一致する -- prop> isUnique s == ((length $ group $ sort s) == length s) -- isUnique :: String -> Bool isUnique [] = True isUnique [x] = True isUniq

    Haskell で doctest(unittest)と QuickCheck(Property-based Testing) - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2018/12/31
    備忘録がてら書きました。
  • Bitrise からダウンロードしたビルドログをきれいに見る方法 - ペンギン村 Tech Blog

    Tl;Dr たぶんこれが一番早いと思います。 $ less ~/Downloads/xxxx.log 補足 Bitrise のビルドログは Web 上では色分けしてきれいに表示されますが、 Bitrise でのログ表示 ダウンロードしたものをテキストエディタで開くと、以下のようにエスケープシーケンスが含まれており読みづらくなっています。 VSCode でログを開いたところ 対処法として、lessなどのコマンドを利用してターミナルで表示してあげればきれいに表示されます。 less でのログ表示 まとめ たぶんこれが一番早いと思います。 P.S. 最初にぱっとこの方法を思いつかなかったので、一応記事にしてみました。 / @tobi462

    Bitrise からダウンロードしたビルドログをきれいに見る方法 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2018/12/15
    一応書きました。
  • RxSwift + Realmでバックグラウンドでの書き込み完了イベントを受け取る - ペンギン村 Tech Blog

    前書き 久々にペンギン村で記事を書きました(10ヶ月ぶり3記事目)、ナガクラ(@nagakuta)です。 今回はリハビリも兼ねて、RxSwiftとRealmを組み合わせた小技を紹介します! TL;DR 今すぐこれをコピペして Realm+Rx.swiftファイルを作成するんだ!! import RealmSwift import RxSwift extension Realm: ReactiveCompatible {} public extension Reactive where Base: Realm { /// Write objects in background queue func asyncWrite(objects: [Object]) -> Completable { let config: Realm.Configuration = self.base.configu

    RxSwift + Realmでバックグラウンドでの書き込み完了イベントを受け取る - ペンギン村 Tech Blog
  • GKE / Kubernetes で稼働していた「このすばCfP」をOSSとして公開しました - ペンギン村 Tech Blog

    「OSSを公開する」と心の中で思ったならッ! その時スデに行動は終わっているんだッ! ジョジョ5部は面白いですね、どうも @tobi462 です。 そんなわけで iOSDC 2018 のプロポーザル検索サービス「この素晴らしいCfPに祝福を!」のソースをOSSとして公開しました。 github.com このすば CfP は衰退しました。 このすば CfP は、 iOSDC 2018 のプロポーザルをもっと快適に見れたら便利だろうという思いつきが発端となり、ペンギン村の有志で開発・公開したサービスです。 GKE / Kubernetes をインフラとして採用し、バックエンドの API には Pythonフロントエンドには Vue.js、CSS フレームワークには Bulma を採用し、SPA な Web ページとして公開しました。 おかげさまでそこそこ好評をいただけて、iOSDC リジェク

    GKE / Kubernetes で稼働していた「このすばCfP」をOSSとして公開しました - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2018/12/04
    OSS公開しました。
  • Merpay Tech Talk #2 に参加してきました - ペンギン村 Tech Blog

    はじめに お疲れ様です。最近寒くてオフトゥンから出られないかむいです。 勉強会に足を運べていない日が続いていたのですが、今回はメルペイさんが主催する『Merpay Tech Talk #2』にお邪魔して来たので、レポートをまとめたいと思います! mercari.connpass.com この日はペンギン村の村民でもある@natpenguin氏も主催側で参加されており、久々にお会い出来て良かったです😃 発表されたテーマはUIにフォーカスを当てたものが多く、どれもiOSエンジニアにとっては関心の高い発表内容でした。 「Cloning Photos app fluid interface」by @masamichiueta さん speakerdeck.com WWDC2018でもセッションがあった、iPhone Xなどに使われる操作インターフェースであるDesigning Fluid Int

    Merpay Tech Talk #2 に参加してきました - ペンギン村 Tech Blog
  • DroidKaigi 2019 のプロポーザル一覧を閲覧できる「とあるDroidKaigiの提案目録」をリリースしました。 - ペンギン村 Tech Blog

    どうも、最近涼しくなってきたので温泉が最高に感じる今日この頃な tobi462 です。 そんなわけで iOSDC Japan 2018 に続き、DroidKaigi 2019 のプロポーザル一覧を快適に見れるかもしれないサービスを開発・公開しました。 droidkaigi-index.penginmura.tech 前回と同様に SPA で快適に検索・閲覧出来ることを目標としています。 また iOSDC とは違い、いわゆるプロポーザルの詳細画面が公式になかったので、SNSでシェアする目的にも使えるように用意してみました。 きっかけ 例によってペンギン村Slackでの発言がきっかけでした。 あいかわらず雑なノリだと感心しますが、賛同してくださった開発メンバーで作ることになりました。 それにしても間違って去年のDroidKaigiのURLを貼っているあたり当に雑だと思います。 利用技術につい

    DroidKaigi 2019 のプロポーザル一覧を閲覧できる「とあるDroidKaigiの提案目録」をリリースしました。 - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2018/11/11
    iOSDC に続いて作りました!
  • iOSDC2018に参加してきました! - ペンギン村 Tech Blog

    ども、かむいです。 僕は今回iOSDC初参加でした。 以前から行きたかったのですが、お仕事が…参加費が…CfPが…ごにょごにょ そんなこんなでCfPは見事に不当選だったものの、ついにスポンサーチケットという素晴らしいアイテムを駆使して参加することが出来ました! 行った感想ですが、マジでハッピーな4日間でした!! 普段の勉強会でも参加するだけで刺激を受けるというのに、著名な方や初めてお会いする方、初めて登壇される方々のセッションをずーーっと1日中聴けるという体験は今年一番の思い出になりました。 ランチはどれも美味しかった… また今回僕の同僚でもあり、31日のルーキーズ枠でも登壇した@hayatanさんの発表は応援する側ながら僕も緊張しっぱなしでした。無事終えられて良かったです。お疲れ様でした!mm この人数の前で発表をやってのけるとか…メタルスライム倒した時並のレベリングが出来たに違いありま

    iOSDC2018に参加してきました! - ペンギン村 Tech Blog
  • Swift 4.2 の変更点を iOSDC 2018 で話してきました - ペンギン村 Tech Blog

    どうも、最近は「進撃の巨人 3期」が楽しみな tobi462 です。 しかし、最近一部の人達から「シュタインズ・ゲート ゼロ」を強烈に推されプレッシャーを感じる今日このごろです。いや原作こそ未プレイですがアニメ初期は見てますし、全話配信されたら見ようと思ってはいたんですよ? レギュラートーク30分 はい、ということで iOSDC Japan 2018 にて 30分 のレギュラートークをさせていただきました。 去年は LT で発表させていただいたのですが、今年はレギュラートーク、しかも今までに経験したことがない 30 分の発表ということで、資料作り・発表練習ともに苦労した面も多いのですが、良い経験が出来たと思います。 正直なところを言うと、こんな平凡な(あるいは中身の透明性が高い)テーマを聞きに来る人はいないのではないかと思っていたのですが、予想に反して聞きに来てくれた人が多かったので嬉しか

    Swift 4.2 の変更点を iOSDC 2018 で話してきました - ペンギン村 Tech Blog
    yu_dotnet2004
    yu_dotnet2004 2018/09/03
    I did blog.