<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Wataru Nishimoto</title>
    <description>The latest articles on DEV Community by Wataru Nishimoto (@wtr).</description>
    <link>https://dev.to/wtr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F41594%2Fd809910b-d079-4de8-a11c-606ece47f587.png</url>
      <title>DEV Community: Wataru Nishimoto</title>
      <link>https://dev.to/wtr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wtr"/>
    <language>en</language>
    <item>
      <title>朝 6 時から働く超朝型エンジニアの一日 #Zaim</title>
      <dc:creator>Wataru Nishimoto</dc:creator>
      <pubDate>Wed, 10 Oct 2018 23:44:59 +0000</pubDate>
      <link>https://dev.to/wtr/-6--zaim-4cip</link>
      <guid>https://dev.to/wtr/-6--zaim-4cip</guid>
      <description>&lt;p&gt;おはようございます。Zaim で iOS アプリ開発をしている watura です。今日は私の一癖ある働き方について紹介していきたいと思います。&lt;/p&gt;

&lt;p&gt;Zaim では、始業時間をある範囲で自由に決められる制度があります。 &lt;strong&gt;5 時から 10 時の間に業務を開始し、そこから 8 時間の勤務と 1 時間の休憩を入れる&lt;/strong&gt; という勤務体系です。まるでフレックス制度のようですが、勤務時間自体は固定なのでフレックスではありません。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U2JxITZL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5t927rb48xcsmfhhq6z6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U2JxITZL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5t927rb48xcsmfhhq6z6.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/5t927rb48xcsmfhhq6z6.jpg" width="880" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;以下、よく聞かれる質問に回答していきます。&lt;/p&gt;

&lt;h4&gt;
  
  
  6 時から働いたら何時まで仕事なの？
&lt;/h4&gt;

&lt;p&gt;15 時です。&lt;/p&gt;

&lt;h4&gt;
  
  
  仕事終わった後は何をしているの？
&lt;/h4&gt;

&lt;p&gt;ジムに行って筋トレしたり、手ごねパンを焼いたりしています。&lt;/p&gt;

&lt;p&gt;16 時台や 17 時台はジムが割と空いている時間なので、いつも非常に快適に筋トレに励むことができています。&lt;/p&gt;

&lt;p&gt;ただ、スタジオ系はあまりないので、黙々と筋トレするか、トレッドミルとかで有酸素に励むということしかできていないです。まあ、筋トレが楽しいのでスタジオには参加しなくてもいいかなとも思っています。&lt;/p&gt;

&lt;h4&gt;
  
  
  いつも何時に寝ているの？
&lt;/h4&gt;

&lt;p&gt;22 時には寝るようにしています。&lt;/p&gt;

&lt;h4&gt;
  
  
  いつも何時に起きているの？
&lt;/h4&gt;

&lt;p&gt;4〜5 時台です。&lt;/p&gt;

&lt;h4&gt;
  
  
  飲み会とかどうしているの？15 時以降、暇じゃない？
&lt;/h4&gt;

&lt;p&gt;多くの場合、ジムに行ってカロリーを消費してから飲み会に行きます。&lt;/p&gt;

&lt;p&gt;会社の飲み会であれば渋谷近辺になることが多いので、会社近辺のジムに行って、筋トレをし、お風呂に入ってから、オフィスに戻り、飲み会の時間まで待機しています。勉強会とかに参加する場合も、ジムに行ってから参加するというのが多いですね。&lt;/p&gt;

&lt;h4&gt;
  
  
  飲み会の次の日はゆっくり出社するの？
&lt;/h4&gt;

&lt;p&gt;基本的にしないです。制度的には、次の日にゆっくり出社するという選択は可能です。&lt;/p&gt;

&lt;h4&gt;
  
  
  それだと起きるの大変じゃないの？
&lt;/h4&gt;

&lt;p&gt;超眠くて大変ですが、気合いと根性、カフェインの力で頑張っています。&lt;/p&gt;

&lt;h4&gt;
  
  
  そんなに早く帰ってミーティングとか大丈夫なの？
&lt;/h4&gt;

&lt;p&gt;念のため、Google カレンダーで 15 時半以降は私は勤務時間外ですって出るように設定しています。ありがたいことに、ある程度まわりの方も考慮してくれるので助かります。&lt;/p&gt;

&lt;p&gt;この早朝制度を利用すると、最大で 14 時に勤務終了となります。つまり、ほぼ半休をとったのと等しい時間に勤務が終了します。そこから旅行に行くと、夜から出発や有給を利用して出発に比べて圧倒的に効率よく時間が使えるようになります。&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Bitrise と fastlane で作る高速 CI/CD 環境 #Zaim</title>
      <dc:creator>Wataru Nishimoto</dc:creator>
      <pubDate>Tue, 02 Oct 2018 23:58:18 +0000</pubDate>
      <link>https://dev.to/wtr/bitrise--fastlane--cicd--zaim-jp</link>
      <guid>https://dev.to/wtr/bitrise--fastlane--cicd--zaim-jp</guid>
      <description>&lt;p&gt;お元気ですか。Zaim の iOS エンジニアの watura です。&lt;/p&gt;

&lt;p&gt;今日は、Zaim の iOS 版アプリの開発において CI（Continuous Integration：継続的インテグレーション）および CD（Continuous Delivery：継続的デリバリ）のシステムをどう構築し、活用しているのかを書いていきます。&lt;/p&gt;

&lt;p&gt;まずは CI からです。現在、Zaim の iOS 開発では Bitrise と fastlane を中心に、一部 Jenkins を利用しています。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o9nB2s7E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/n8u6li03y4ue8r7snrj9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o9nB2s7E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/n8u6li03y4ue8r7snrj9.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/n8u6li03y4ue8r7snrj9.jpg" width="880" height="573"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="//www.bitrise.io"&gt;Bitrise - Mobile Continuous Integration and Delivery&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  かつての Jenkins CI 環境にあった三つの課題
&lt;/h4&gt;

&lt;p&gt;Bitrise を採用する以前は、LAN 内にある MacBook Air にインストールした Jenkins だけで CI 環境を構築していました。しかしながら、これには以下のような課題がありました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;端末のメンテナンスが面倒&lt;/li&gt;
&lt;li&gt;パフォーマンスが悪い&lt;/li&gt;
&lt;li&gt;外部からアクセスできないため Github などから hook できない&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Bitrise 採用の決め手はマルチプラットフォームの料金
&lt;/h4&gt;

&lt;p&gt;これらを解決するには、SaaS として使える CI ツールが必要だと判断し、いくつかを比較したところ、Bitrise と CircleCI が最終候補に残りました。&lt;/p&gt;

&lt;p&gt;機能や使いやすさはどちらも同じくらい充実していたものの、最後の決め手は料金体系でした。&lt;/p&gt;

&lt;p&gt;Zaim は iOS 版以外にも Android 版や Web 版が存在します。このため、プラットフォームとしては、いずれ Mac 以外の CI ツールを使うことを想定していました。CircleCI は Mac と Linux で料金が分かれていて別々に契約が必要ですが、Bitrise は同一契約内で済むようになっています。コスト面や管理面でのメリットが大きいとして、Bitrise を選択しました。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I_A0W0YJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/k2n3ogp2gejlthvf11h3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I_A0W0YJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/k2n3ogp2gejlthvf11h3.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/k2n3ogp2gejlthvf11h3.jpg" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今であれば、マイクロソフトが今年の春頃にリリースした Visual Studio App Center を採用するのも手かもしれません。&lt;/p&gt;

&lt;h4&gt;
  
  
  Bitrise＋fastlane（＋Jenkins）に任せている四つの作業
&lt;/h4&gt;

&lt;p&gt;iOS の CI および CD 作業全体としては、上記のようにして採用した Bitrise を使っています。&lt;/p&gt;

&lt;p&gt;Bitrise にはさまざまなアクションを自動化する公式ステップがあり、ほとんどすべての作業は公式ステップの組み合わせで実現できます。ですが、 &lt;strong&gt;Bitrise にロックインされ、今後よりよいサービスが出てきた時に乗り換えられないという事態を避けたいと考えているため、基本的にはこうしたフローの制御は &lt;a href="//fastlane.tools"&gt;fastlane&lt;/a&gt; を使って実現するようにしています。&lt;/strong&gt;&lt;br&gt;
そして実は、Jenkins で実行している箇所も一つだけまだ残っています。早く引退してほしいのですが、まだまだ現役です。&lt;/p&gt;

&lt;p&gt;これらのツールを組み合わせて、以下の作業を自動化しています。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Danger の実行&lt;/li&gt;
&lt;li&gt;テストの実行&lt;/li&gt;
&lt;li&gt;DeployGate への配信&lt;/li&gt;
&lt;li&gt;App Store へのアップロード&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  （１）Danger の実行
&lt;/h4&gt;

&lt;p&gt;Pull Request の簡易チェックツールである &lt;a href="https://danger.systems"&gt;Danger&lt;/a&gt; を使って、Pull Request の一次確認を実行しています。&lt;/p&gt;

&lt;p&gt;Danger は旧 CI マシンである Jenkins から起動しています。 Jenkins である理由は、&lt;strong&gt;「Pull Request の本文やタイトルに変更があった場合、そのコメント欄に "danger please" と書き込むことで、Danger に再チェックしてもらいたい。これは、今のところ Bitrise ではできない」&lt;/strong&gt; という事情があります。&lt;/p&gt;

&lt;p&gt;例えば Zaim の iOS 版では「Pull Request のタイトルに必ず呼応する issue 番号を入れる」という内部ルールがあるものの、これは忘れてしまいがちです。やらかすと、Danger から以下のように怒られます。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s8y8P5L2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/05busej4n64zauimq378.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s8y8P5L2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/05busej4n64zauimq378.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/05busej4n64zauimq378.jpg" width="590" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;タイトルを修正して即 Danger が再実行できればよいのですが、Bitrise でやろうとすると、空のコミットをプッシュする必要があります。Jenkins を使えば、コメント欄に「danger please」と記述するだけ。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RZutKR-x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2b2flfyie1tynylcu6j0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RZutKR-x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2b2flfyie1tynylcu6j0.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/2b2flfyie1tynylcu6j0.jpg" width="590" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Danger が動き出し、LGTM になります。明らかに便利です。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NFuyLbfm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zhqp4azginmaaeh6any8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NFuyLbfm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zhqp4azginmaaeh6any8.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/zhqp4azginmaaeh6any8.jpg" width="598" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github のコメントが Bitrise のトリガーになる方法があれば、Danger も Bitrise にしちゃいたいと思っています。&lt;/p&gt;

&lt;h4&gt;
  
  
  （２）テストの実行
&lt;/h4&gt;

&lt;p&gt;次はテストです。Unit Test と UI Test を、Bitrise で実行しています。トリガーは Pull Request と develop ブランチの更新です。&lt;/p&gt;

&lt;p&gt;これらのテストの実行には、fastlane scan を使っています 。ちなみに、Bitrise のような、シミュレータ の画面が見えない環境でも UI テストは動かせます。&lt;/p&gt;

&lt;h4&gt;
  
  
  （３）DeployGate への配信
&lt;/h4&gt;

&lt;p&gt;ここからは CD の話です。まずは、本番にアップロードする前のテスト用アプリをどう社内に配布しているかについて説明します。Zaim では DeployGate を使っており、主に 3 種類のアプリを配信しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hourly：develop ブランチを更新するごとに配信&lt;/li&gt;
&lt;li&gt;Beta：1 日に 1 回 develop ブランチを配信&lt;/li&gt;
&lt;li&gt;Inspect：引数などで指定した特定のブランチやコミットを配信&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  （４）App Store へのアップロード
&lt;/h4&gt;

&lt;p&gt;社内テストだけではなく、本番用の申請作業も簡単にしたいですよね。Zaim で App Store へのアップロードをツール経由でできるようにしたのは、ごく最近の 2018 年の 9 月からです。全体のフローがシンプルになって、めちゃくちゃ楽になりました。&lt;/p&gt;

&lt;p&gt;以前のリリース作業は、&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Jenkins で App Store 用にビルドする&lt;/li&gt;
&lt;li&gt;ローカルにビルドされたアーカイブをダウンロードする&lt;/li&gt;
&lt;li&gt;Xcode でアーカイブを開き、App Store Connect にアップロードする&lt;/li&gt;
&lt;li&gt;リリースノートなどの各種メタデータを手動で書き込む&lt;/li&gt;
&lt;li&gt;iTunes Connect に申請する&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;という手順でした。それぞれは大変な作業ではありません。ただ、あいだに待ち時間があるため、途中までやって忘れてしまうことが多々ありました。&lt;/p&gt;

&lt;p&gt;これを Bitrise 経由にすると、&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;リポジトリ内にある各種メタデータを更新する&lt;/li&gt;
&lt;li&gt;Bitrise で App Store 用の Workflow を実行する&lt;/li&gt;
&lt;li&gt;iTunes Connect に申請する&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;という作業でリリースできるようになりました。時間がかかるのは「Bitrise で Workflow を実行」の待ち時間のみで、あとはすぐに完了します。また、App Store へアップロードが終わると App Store Connect からメールが届くため、まだか、まだかと Bitrise の画面を見る必要もありません。&lt;/p&gt;

&lt;p&gt;また、事前準備として、リリースノートやアプリの詳細といったメタデータも Github で管理できるようになるようになりました。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VkFIHiZU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/avwvdz39hifw3pxmv41p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VkFIHiZU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/avwvdz39hifw3pxmv41p.jpg" alt="https://thepracticaldev.s3.amazonaws.com/i/avwvdz39hifw3pxmv41p.jpg" width="880" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;とはいえ、そもそも DeployGate への配信や、App Store へのアップロードの管理は、CI を使おうが直接 Xcode でやろうが全体で見ると面倒な作業が多くありますし、権限管理も複雑になります。例えば、証明書や Provisioning Profile は Xcode に任せるのか、開発メンバーや CI で共通のものを作成するのか、それともそれぞれが作って管理するのか。Developer Portal へのアクセス権限はどれくらい必要なのかなど、考えなければならないことが多々あります。&lt;/p&gt;

&lt;p&gt;Zaim では、こうした部分も fastlane を使ってシンプルに管理できるようにしています。この詳細については別記事で、まとめていきたいと思います。&lt;/p&gt;

&lt;h4&gt;
  
  
  さらなる CI/CD 環境の改善を目指したい
&lt;/h4&gt;

&lt;p&gt;一連の流れで、かなり CI/CD は充実してきましたが、まだまだよくしたいと考えています。例えば、以下のようなことです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bitrise の Workflow を Slack から楽に呼び出せるようにする&lt;/li&gt;
&lt;li&gt;任意のブランチ、コミットを簡単にデプロイできるようにする&lt;/li&gt;
&lt;li&gt;ライブラリを自動アップデートできるようにする&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;こうした改善により、開発作業にさらに多くの時間を割けるようにして、効率的かつメンバーにとって心地よい環境を作っていきたいと思います。&lt;/p&gt;

</description>
      <category>bitrise</category>
      <category>ci</category>
      <category>ios</category>
      <category>fastlane</category>
    </item>
    <item>
      <title>What I learned from 12/02 bug</title>
      <dc:creator>Wataru Nishimoto</dc:creator>
      <pubDate>Tue, 05 Dec 2017 10:41:43 +0000</pubDate>
      <link>https://dev.to/wtr/what-i-learned-from-1202-bug-6fk</link>
      <guid>https://dev.to/wtr/what-i-learned-from-1202-bug-6fk</guid>
      <description>&lt;p&gt;Does anybody know this bug? &lt;a href="https://www.macrumors.com/2017/12/02/ios-11-1-2-date-bug-crash-loop/"&gt;Date Bug in iOS 11.1.2 Causing Crash Loop on iPhones as December 2 Hits [Updated]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Because of timezone at Japan this bug heavily affected to many people. Our company affected, too. Perhaps our app could be the most affected app in the world.&lt;br&gt;
Because there are about 7 million downloads and it uses notifications by the default.&lt;/p&gt;

&lt;p&gt;The 🙌guy who made demo project of this bug is co-worker.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Did
&lt;/h2&gt;

&lt;p&gt;At 6:30 am(UTC+9) I noticed that our app crashes a lot and become trend of twitter, but at crashlytics there aren't any new crashes caught. Off course firebase crash does not know any new crashes either.&lt;/p&gt;

&lt;p&gt;So I started search on twitter and I found that there are a bug that somehow made by our app. It was unbelievable, how I could make iOS crash by a app which works with any problem until yesterday.&lt;/p&gt;

&lt;p&gt;At first everybody saids that notification is problem, but there are push notification and local notification. Our app uses both notification methods so I try to find which notification causes this bug.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check device token error logs.&lt;/li&gt;
&lt;li&gt;stop taking device token&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Still being this bug. Any clues founded.&lt;/p&gt;

&lt;p&gt;There are few accounts I use for development. And there is a account does not cause this bug. I started to take diff of that account and other account.&lt;/p&gt;

&lt;p&gt;In our app user can chose a day for repeat notification. That account was set to 25th. Other account was 1st.&lt;br&gt;
So I changed it to 25th to 1st. I hit bug. This parameter makes bug and this parameter is used only in local notification. So the problem is in local notification or our code to use local notification.&lt;/p&gt;

&lt;p&gt;Edit code, compile, run and test. Edit code, compile, run and test. Edit code, compile, run and test. I tried so many times.&lt;/p&gt;

&lt;p&gt;If you are swift developer, probably knows that compile takes plenty of time and while compiling Xcode become stupid. It takes time and staminas. &lt;br&gt;
The 🙌Guy made a small demo project that hit this bug. This project is very small and very fast compile. So we could debug very faster.&lt;/p&gt;

&lt;p&gt;Here is one what I learned from this bug.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Make demo project
&lt;/h2&gt;

&lt;p&gt;If 🙌Guy didn't make demo project we couldn't determine this bug at &lt;a href="https://blog.zaim.net/?p=3337"&gt;this quality &lt;/a&gt;(Japanese only).&lt;br&gt;
In this post we tried to describe what happened to iOS. There are more detail and guesses which did not write in this post.&lt;br&gt;
ex) this bug is not only for 2017. not only 12/2. &lt;br&gt;
These results are found because of fast compile and debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Tell to the apple in English
&lt;/h2&gt;

&lt;p&gt;Who made iOS? Apple.&lt;br&gt;
Apple uses English for default language.&lt;br&gt;
If we find a bug. We need to tell apple in English.&lt;br&gt;
probably radder has many rubbish bug reports. So we need to take attention from apple. But how?&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Tell the world (twitter) in English
&lt;/h2&gt;

&lt;p&gt;So did we act well? No. We didn't tell the world in English. Only Japanese.&lt;/p&gt;

&lt;p&gt;I believe there will not have these kind of huge bug. But if I hit the bug. I will make small demo project and announce it in English.&lt;/p&gt;

&lt;p&gt;If you want know about this more deeply you could read &lt;a href="https://blog.zaim.net/?p=3337"&gt;this blog &lt;/a&gt;(Japanese).&lt;/p&gt;

&lt;p&gt;Only Apple Could know truth. we could do only guess.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>todayilearned</category>
    </item>
  </channel>
</rss>
