<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>LifeAnalysis Lab &amp; Yuxiao</title>
  
  <subtitle>\@o1xhack</subtitle>
  <link href="/en/atom.xml" rel="self"/>
  
  <link href="http://o1xhack.com/"/>
  <updated>2018-07-20T22:22:56.373Z</updated>
  <id>http://o1xhack.com/</id>
  
  <author>
    <name>Yuxiao Wang</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Shortcuts (since iOS12)</title>
    <link href="http://o1xhack.com/2018/07/21/shortcuts/"/>
    <id>http://o1xhack.com/2018/07/21/shortcuts/</id>
    <published>2018-07-21T02:28:00.000Z</published>
    <updated>2018-07-20T22:22:56.373Z</updated>
    
    <content type="html"><![CDATA[<div style="text-align:center"><strong>Total 1 shortcuts</strong><br></div><br><div style="text-align:center"><em>Edited 1, Created 0</em><br></div><p><a href="http://o1xhack.com/2018/07/20/shortcuts/">Shortcuts 中文版本</a></p><a id="more"></a><h1 id="How-to-get-the-shortcuts-in-this-article"><a href="#How-to-get-the-shortcuts-in-this-article" class="headerlink" title="How to get the shortcuts in this article"></a>How to get the shortcuts in this article</h1><p>On this page, please open in Safari on your iPhone, and having Shortcuts installed. Then click the ⬇️ icon on this page to download.</p><p>You will see image under and click ‘Open in “Shortcuts”‘, it will go to Shortcuts APP and ask your import QA.</p><p><img src="https://i.imgur.com/SwIJ21t.jpg" alt=""></p><h2 id="DarkSky-Weather-Checked"><a href="#DarkSky-Weather-Checked" class="headerlink" title="DarkSky Weather Checked"></a>DarkSky Weather Checked</h2><p>This is the one edited from MacStories Club, it have previous steps to do the API stuff and etc. I won’t provide that since it’s not a free club. (If Federico share for free, I will update too.)</p><p>This one only added the ‘Run Shortcuts’ action so you can get the real location each time. (You definitely will need the original Get Coord shortcuts by MacStories Club.)</p><p>The import QA will ask which shortcuts to run, so choose the one you got from Federico.</p><p>⬇️ <a href="/en/2018/07/20/shortcuts/DarkSkyCheckEdited.shortcut">DarkSkyCheckEdited</a></p><p><strong><em>Any question please directly comment this article, I will receive notification!</em></strong></p>]]></content>
    
    <summary type="html">
    
      &lt;div style=&quot;text-align:center&quot;&gt;&lt;strong&gt;Total 1 shortcuts&lt;/strong&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;div style=&quot;text-align:center&quot;&gt;&lt;em&gt;Edited 1, Created 0&lt;/em&gt;&lt;br&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;http://o1xhack.com/2018/07/20/shortcuts/&quot;&gt;Shortcuts 中文版本&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>📌 Top Articles, Series Articles 📌</title>
    <link href="http://o1xhack.com/2017/10/02/top/"/>
    <id>http://o1xhack.com/2017/10/02/top/</id>
    <published>2017-10-02T02:28:00.000Z</published>
    <updated>2018-07-20T21:19:17.155Z</updated>
    
    <content type="html"><![CDATA[<a id="more"></a><div style="text-align:center"><strong>iOS App I developed~</strong><br></div><ul><li><a href="http://o1xhack.com/en/2017/03/20/coffeeit/">Coffee It</a></li><li><a href="http://o1xhack.com/2018/03/10/infoit2/">🔥 Info It 2.0, Chinese</a></li></ul><div style="text-align:center"><strong>Tech</strong><br></div><ul><li><a href="http://o1xhack.com/en/2017/03/10/swift-learning/addchildview-safari/">Add SafariViewController as childViewController with SnapKit</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;a id=&quot;more&quot;&gt;&lt;/a&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;strong&gt;iOS App I developed~&lt;/strong&gt;&lt;br&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://o1xhack.com/en/20
      
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>GitHub - Awesome iPad</title>
    <link href="http://o1xhack.com/2017/07/01/ios/awsome-ipad/"/>
    <id>http://o1xhack.com/2017/07/01/ios/awsome-ipad/</id>
    <published>2017-07-01T05:01:00.000Z</published>
    <updated>2017-10-02T00:26:14.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Awesome-iPad"><a href="#Awesome-iPad" class="headerlink" title="Awesome iPad"></a>Awesome iPad</h1><p>More at <a href="https://github.com/o1xhack/awesome-ipad" target="_blank" rel="noopener">GitHub</a><br>Based on <a href="https://github.com/sindresorhus/awesome" target="_blank" rel="noopener">Awesome</a><br>Have <a href="https://github.com/o1xhack/awesome-ipad/blob/master/README-CN.md" target="_blank" rel="noopener">中文版本</a><br>Also in <a href="https://github.com/o1xhack/awesome-ipad/blob/master/README.md" target="_blank" rel="noopener">English Version</a><br>With <strong>mit licen≥≥ce</strong></p><p>Here is a place for collection of Awesome iPad APPs! This is launched at <a href="http://o1xhack.com/2017/07/01/ios/awesome-ipad">This Blog</a> and for further contribution, copied to GitHub. Feel free to Star and Fork. Leave any suggestions and comment. Also need contributors! Base on <a href="https://github.com/sindresorhus/awesome" target="_blank" rel="noopener">awesome</a> format.</p><a id="more"></a><h1 id="About"><a href="#About" class="headerlink" title="About"></a>About</h1><p><img src="http://omqdii6dz.bkt.clouddn.com/apple-pencil-12x12..svg" alt="apple pencil"> means this APP support Apple Pencil.</p><h1 id="Content"><a href="#Content" class="headerlink" title="Content"></a>Content</h1><ul><li><a href="#photo-edit">Photo Edit</a></li><li><a href="#note-taking">Note Taking</a></li></ul><h1 id="Photo-Edit"><a href="#Photo-Edit" class="headerlink" title="Photo Edit"></a>Photo Edit</h1><h1 id="Note-Taking"><a href="#Note-Taking" class="headerlink" title="Note Taking"></a>Note Taking</h1><p>Notability:  <img src="http://omqdii6dz.bkt.clouddn.com/apple-pencil-12x12..svg" alt="apple pencil"></p>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;Awesome-iPad&quot;&gt;&lt;a href=&quot;#Awesome-iPad&quot; class=&quot;headerlink&quot; title=&quot;Awesome iPad&quot;&gt;&lt;/a&gt;Awesome iPad&lt;/h1&gt;&lt;p&gt;More at &lt;a href=&quot;https://github.com/o1xhack/awesome-ipad&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;GitHub&lt;/a&gt;&lt;br&gt;Based on &lt;a href=&quot;https://github.com/sindresorhus/awesome&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Awesome&lt;/a&gt;&lt;br&gt;Have &lt;a href=&quot;https://github.com/o1xhack/awesome-ipad/blob/master/README-CN.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;中文版本&lt;/a&gt;&lt;br&gt;Also in &lt;a href=&quot;https://github.com/o1xhack/awesome-ipad/blob/master/README.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;English Version&lt;/a&gt;&lt;br&gt;With &lt;strong&gt;mit licen≥≥ce&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here is a place for collection of Awesome iPad APPs! This is launched at &lt;a href=&quot;http://o1xhack.com/2017/07/01/ios/awesome-ipad&quot;&gt;This Blog&lt;/a&gt; and for further contribution, copied to GitHub. Feel free to Star and Fork. Leave any suggestions and comment. Also need contributors! Base on &lt;a href=&quot;https://github.com/sindresorhus/awesome&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;awesome&lt;/a&gt; format.&lt;/p&gt;
    
    </summary>
    
      <category term="iOS" scheme="http://o1xhack.com/categories/iOS/"/>
    
    
      <category term="ios" scheme="http://o1xhack.com/tags/ios/"/>
    
      <category term="app" scheme="http://o1xhack.com/tags/app/"/>
    
      <category term="github" scheme="http://o1xhack.com/tags/github/"/>
    
      <category term="ipad" scheme="http://o1xhack.com/tags/ipad/"/>
    
  </entry>
  
  <entry>
    <title>iOS APP：Coffee It - Track Caffeine in Simplest Way</title>
    <link href="http://o1xhack.com/2017/03/21/coffeeit/"/>
    <id>http://o1xhack.com/2017/03/21/coffeeit/</id>
    <published>2017-03-21T03:30:00.000Z</published>
    <updated>2018-03-02T00:25:27.000Z</updated>
    
    <content type="html"><![CDATA[<p><img src="http://i.imgur.com/ucKkbCm.png" alt="PNG 图像-7186AF5662CA-1"></p><h1 id="Intro"><a href="#Intro" class="headerlink" title="Intro"></a>Intro</h1><p><a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It</a> is an iOS APP that builds for those who drink Coffee a lot. There are a group of people who want to log all Caffeine they drink each time. And from all iOS APPs, most Caffeine Tracker APP are abandoned in a few time, without further bug fixes and improvement, the APP is difficult to use. The rest are expensive, and less functional. This is why I develop <a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It</a>.</p><blockquote class="blockquote-center"> Please download <a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It - Track Caffeine in Simplest Way</a> and give a try!</blockquote><a id="more"></a><p><strong>For me, it only takes a seconds to log the coffee before I throw the empty cup, so if you feel it’s not that good to use, give me feedback and I will try my best.</strong></p><blockquote class="blockquote-center"> Using telegram to give me feedback: <a href="http://t.me/o1xhack" target="_blank" rel="noopener">@o1xhack</a></blockquote><p>As a student with spare time for these APPs: </p><blockquote class="blockquote-center">Leave a 5-star if you like it or want support me!</blockquote><h2 id="About"><a href="#About" class="headerlink" title="About"></a>About</h2><p>I’m a student in Computer Science, and I learn Swift and iOS Development myself. </p><p>This APP may not fulfill every coffee lover’s requirement, but I will keep developing it with any feedback! I cannot assure I can do every function since I still need time for my University Study, but with my spare time, I will do my best in improving it.</p><p>As you can see, I’m consistently making <a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It</a> faster and easy to using, for me, it only takes a seconds to log the coffee before I throw the empty cup, so if you feel it’s not that good to use, give me feedback and I will try my best.</p><hr><h1 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h1><blockquote><p>I put all my time on my developing process (beside student works) that I don’t have time to write a whole article for features, here are the summary.</p></blockquote><p>I sincerely appreciate you give me any advice or leave a 5-star with comment!</p><h2 id="Complete-Data"><a href="#Complete-Data" class="headerlink" title="Complete Data"></a>Complete Data</h2><p>Build-in caffeine data will fulfill most normal situation.</p><p>Fulfill most normal routine log.</p><h2 id="Favorite"><a href="#Favorite" class="headerlink" title="Favorite"></a>Favorite</h2><p>Favorite what you like and add in seconds</p><h2 id="Quick-Fast-like-flash"><a href="#Quick-Fast-like-flash" class="headerlink" title="Quick, Fast like flash"></a>Quick, Fast like flash</h2><p>The only thing you need to care is to choose the type of coffee.</p><p>In <strong>Favorite List</strong>, single click to confirm add without more steps.</p><p>Set History as default view, and click any history to add that data, quick like Flash!</p><h2 id="Customize"><a href="#Customize" class="headerlink" title="Customize"></a>Customize</h2><p>Make your list and store specific type.</p><p>Customize your life and your mood! (:</p><h2 id="Convenient"><a href="#Convenient" class="headerlink" title="Convenient"></a>Convenient</h2><p>Open it, Log it, and View it.</p><p><strong>Minority Function</strong>: Set Badge to number “1”, and put inside a folder, 3D Touch folder to quick open <a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It</a>, and log coffe!</p><h2 id="Daily-Total-and-Limitation"><a href="#Daily-Total-and-Limitation" class="headerlink" title="Daily Total and Limitation"></a>Daily Total and Limitation</h2><p>View all your history! (integrated with Health)</p><p>See your daily total intake and percentage of the daily limitation​(300mg)</p><h2 id="Future"><a href="#Future" class="headerlink" title="Future"></a>Future</h2><p>I have ideas about history analysis, data analysis, and I will try my best to develop it, but I cannot promise to update every feedback in time, but I will do my best to keep <a href="https://appsto.re/cn/Qf3Eib.i" target="_blank" rel="noopener">Coffee It</a> up-to-dates. I’m using it too!</p><hr><h1 id="Upvoted-on-ProductHunt"><a href="#Upvoted-on-ProductHunt" class="headerlink" title="Upvoted on ProductHunt"></a>Upvoted on ProductHunt</h1><blockquote><p>Please give the app an upvoted if you can!</p></blockquote><div style="text-align:center"><br><iframe style="border: none;" src="https://cards.producthunt.com/cards/posts/94855?v=1" width="500" height="405" frameborder="0" scrolling="no" allowfullscreen></iframe><br></div><hr><h1 id="Update-Timeline"><a href="#Update-Timeline" class="headerlink" title="Update Timeline"></a>Update Timeline</h1><h2 id="Year-2017"><a href="#Year-2017" class="headerlink" title="Year 2017"></a><blockquote class="blockquote-center">Year 2017</blockquote></h2><h3 id="10-9-App-Store-1-7-6"><a href="#10-9-App-Store-1-7-6" class="headerlink" title="10.9 App Store: 1.7.6"></a>10.9 App Store: 1.7.6</h3><p>TOP: Watch APP is in progress~</p><ol><li>For all Soylent drinker, here we are!<ul><li>Cafe Coffiest</li><li>Cafe Vanilla</li><li>Cafe Chai</li></ul></li><li>Starbucks Coffee add：Iced Flat White</li><li>Starbucks Beverage add：Cool Lime Starbucks Refreshers</li></ol><h3 id="9-28-App-Store-1-6-13"><a href="#9-28-App-Store-1-6-13" class="headerlink" title="9.28 App Store: 1.6.13"></a>9.28 App Store: 1.6.13</h3><p>Coffee It already supports iOS11, if any problem, contact me please.<br>Also In-App Rate system added! Please give a 5-star!</p><p>Since the latest Apple Watch got a really fast speed to open 3rd APP, Coffee It will come up with a Watch APP, but won’t in few months. This semester cannot be more busier and I will try my best to maintain all LifeAnalysis Lab APPs.</p><p>This is an update with plenty data update and detail changed.</p><ol><li>History View now shows the number of cups you take. (Some person may drink not exactly one cup)</li><li>Starbucks now seperate into two new groups: Starbucks Coffee and Starbuck Drinks<ul><li>Just to let you know, there are still caffeine in lots of Drinks! Please check them and make your life better!</li></ul></li><li>New coffee data in Starbuck Drinks<ul><li>Strawberry Acai Refreshers</li><li>Pink Drink</li><li>Ombrè Pink Drink</li><li>Iced Black Tea (Lemonade)</li><li>Iced Green Tea (Lemonade)</li></ul></li><li>Update coffee data in Starbucks Coffee<ul><li>Caffè Latte</li><li>Caffè Mocha</li><li>Caffè Americano</li><li>Nariño 70 Cold Brew</li></ul></li><li>I find out some coffee got different caffeine date with Iced compare to normal Hot one.<ul><li>Iced Coffee (Unsweetened)</li><li>Iced Coffee (Sweetened)</li><li>Iced Caffè Latte</li><li>Iced Caffè Mocha</li><li>Please notice when you drinking an Iced one, it’s normally got more in Venti type, also, you can submit a Request new Coffee types to help me add these data. </li></ul></li><li>Update Localization of Chinese</li><li>UI Constraint change.</li></ol><h3 id="7-17-App-Store-1-6-6"><a href="#7-17-App-Store-1-6-6" class="headerlink" title="7.17 App Store: 1.6.6"></a>7.17 App Store: 1.6.6</h3><ol><li>Using Fabric to analysis now. <ul><li>No privacy problem! Won’t sell or give any data~ </li><li>Just help me to learn how user using functions.</li></ul></li><li>Localization Chinese fix.</li><li>Fix in Settings.</li></ol><p>No big update for this version. From data, Coffee It has extremely little users, if your friends love coffee, track stuff, welcome to recommend Coffee It!</p><h3 id="6-23-App-Stroe-1-6-5"><a href="#6-23-App-Stroe-1-6-5" class="headerlink" title="6.23 App Stroe: 1.6.5"></a>6.23 App Stroe: 1.6.5</h3><ol><li>History View layout change! <ul><li>Easier to see the data~</li></ul></li><li>New in-app notification UI<ul><li>Change in 4 other places, Please let me know if you have other advices</li></ul></li><li>Click to add at History View</li><li>Add new list at Coffee View</li><li>Feedback at Setting View<ul><li>New feature of the update version, this one it is!</li></ul></li><li>New launch screen! <ul><li>LifeAnalysis Lab is founded!(only me233)</li></ul></li><li>Send Feedback email from settings</li></ol><h3 id="6-12-App-Store-1-5-5"><a href="#6-12-App-Store-1-5-5" class="headerlink" title="6.12 App Store: 1.5.5"></a>6.12 App Store: 1.5.5</h3><p>—- Click in History to Add —-<br>Fast like Flash!</p><ul><li>Now you can click any single history in History view</li><li>Then a confirm alert shows with details</li><li>Click and, that’s it!</li></ul><p>—- Set Default Open View —-<br>With the Click in History to Add function<br>It’s better to let your choose the default open view</p><ul><li>History view</li><li>or Coffee view</li></ul><p>—- Localization —-<br>Since you all using En, I’m not introduced a lot.<br>Just support most view/alert with Chinese</p><p>—- UI/UX —-</p><ul><li>font unify</li><li>UI unify (add to favorite change to Green)</li><li>tab bar name change</li></ul><p>—- Bug? —-</p><ul><li>fix showing of History bottom view</li><li>fix too many digit number(1.2222222%) in History Today view.</li><li>some alert fix</li></ul><h3 id="5-29-App-Store-1-3-13"><a href="#5-29-App-Store-1-3-13" class="headerlink" title="5.29 App Store: 1.3.13"></a>5.29 App Store: 1.3.13</h3><p>—- Total Toady Caffeine —-</p><ul><li>Now you can view total caffeine intake of today, the percentage of daily limitation(300mg)</li><li>The percentage label will present RED if you get the limitation</li><li>All data sync from HealthKit</li></ul><p>—- Show Badge of 1 —-</p><ul><li>Coffee It will ask for the request of notification, and then Coffee It will have the badge of “1” for all time until you close this setting. </li><li>After you open this, you can put Coffee It inside a folder, and 3D Touch the folder to quick open Coffee It with one step.</li></ul><p>—- Localization —-</p><ul><li>Now History daily goal view supports Chinese.</li><li>Go to APP Settings and open 「本地化中文」</li></ul><h3 id="4-17-App-Store：1-3-3"><a href="#4-17-App-Store：1-3-3" class="headerlink" title="4.17 App Store：1.3.3"></a>4.17 App Store：1.3.3</h3><ul><li>Delete in History view</li><li>New Setting UI</li><li>New Setting: Confirm Add Alert in Favorite View</li><li>Auto layout fixes</li><li>URL Scheme basic support</li><li>Bug fixes</li></ul><h3 id="4-5-App-Store：1-2-2"><a href="#4-5-App-Store：1-2-2" class="headerlink" title="4.5 App Store：1.2.2"></a>4.5 App Store：1.2.2</h3><ul><li>Favorite function!</li><li>Coffee Data support Chinese language</li><li>Add more coffee types</li><li>Bug fixes</li></ul><h3 id="3-30-App-Store：1-0-0"><a href="#3-30-App-Store：1-0-0" class="headerlink" title="3.30 App Store：1.0.0"></a>3.30 App Store：1.0.0</h3><ul><li>All basic adding, deleting, editing</li><li>View controller and app info</li><li>Health Data access and check</li></ul><h2 id="Beginning"><a href="#Beginning" class="headerlink" title="Beginning"></a>Beginning</h2> <blockquote class="blockquote-center"><strong>2017.03.16</strong><br><strong>Coffee It first time update to iTunes Connect</strong></blockquote><hr><h1 id="Caffeine-Data-Request"><a href="#Caffeine-Data-Request" class="headerlink" title="Caffeine Data Request"></a>Caffeine Data Request</h1><blockquote><p>If you have any Coffee Brand or types want to be added as Default. Fill the form.</p></blockquote><iframe class="airtable-embed" src="https://airtable.com/embed/shrZwOKG779zOhLaO?backgroundColor=red" frameborder="0" onmousewheel="" width="100%" height="533" style="background: transparent; border: 1px solid #ccc;"></iframe><hr><h1 id="Policy"><a href="#Policy" class="headerlink" title="Policy"></a>Policy</h1><p><a href="http://o1xhack.com/2017/03/18/coffeeit-policy/#Privacy-Policy">Privacy Policy</a></p><p><a href="http://o1xhack.com/2017/03/18/coffeeit-policy/#Caffeine-Data-Sources">Caffeine Data Sources Policy</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;&lt;img src=&quot;http://i.imgur.com/ucKkbCm.png&quot; alt=&quot;PNG 图像-7186AF5662CA-1&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;Intro&quot;&gt;&lt;a href=&quot;#Intro&quot; class=&quot;headerlink&quot; title=&quot;Intro&quot;&gt;&lt;/a&gt;Intro&lt;/h1&gt;&lt;p&gt;&lt;a href=&quot;https://appsto.re/cn/Qf3Eib.i&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Coffee It&lt;/a&gt; is an iOS APP that builds for those who drink Coffee a lot. There are a group of people who want to log all Caffeine they drink each time. And from all iOS APPs, most Caffeine Tracker APP are abandoned in a few time, without further bug fixes and improvement, the APP is difficult to use. The rest are expensive, and less functional. This is why I develop &lt;a href=&quot;https://appsto.re/cn/Qf3Eib.i&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Coffee It&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class=&quot;blockquote-center&quot;&gt; Please download &lt;a href=&quot;https://appsto.re/cn/Qf3Eib.i&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Coffee It - Track Caffeine in Simplest Way&lt;/a&gt; and give a try!&lt;/blockquote&gt;
    
    </summary>
    
      <category term="iOS Develop（iOS 开发）" scheme="http://o1xhack.com/categories/iOS-Develop%EF%BC%88iOS-%E5%BC%80%E5%8F%91%EF%BC%89/"/>
    
    
      <category term="swift" scheme="http://o1xhack.com/tags/swift/"/>
    
      <category term="iOSDev" scheme="http://o1xhack.com/tags/iOSDev/"/>
    
      <category term="iOS APP" scheme="http://o1xhack.com/tags/iOS-APP/"/>
    
  </entry>
  
  <entry>
    <title>Coffee It - Privacy Policy / Caffeine Data Sources</title>
    <link href="http://o1xhack.com/2017/03/19/coffeeit-policy/"/>
    <id>http://o1xhack.com/2017/03/19/coffeeit-policy/</id>
    <published>2017-03-19T03:20:29.000Z</published>
    <updated>2017-02-20T08:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote class="blockquote-center">Coffee It - Track Caffeine in Simplest Way (Still Testing.)</blockquote><h1 id="Privacy-Policy"><a href="#Privacy-Policy" class="headerlink" title="Privacy Policy"></a>Privacy Policy</h1><p>This Privacy Policy relates to my use of any personally identifiable data (”Personal Data”) collected from you when using Coffee It. For now, I only read and write to APPLE Health APP through HealthKit, which is totally secure in transition. Coffee It now doesn’t have any server to collect or analysis these data.</p><a id="more"></a><h2 id="What-Personal-Data-will-I-collect-and-using-for"><a href="#What-Personal-Data-will-I-collect-and-using-for" class="headerlink" title="What Personal Data will I collect and using for?"></a>What Personal Data will I collect and using for?</h2><p>Coffee It is currently a track caffeine taken app, so I only ask for your permission of Caffeine write and read right directly from Health APP. By using APPLE’s HealthKit, all the data are secured and won’t affect your life. </p><p>For now, I won’t do anything to your data including but not only analyzing, transfer to server … I only show your data in the app.</p><h2 id="Cookies"><a href="#Cookies" class="headerlink" title="Cookies:"></a>Cookies:</h2><p>Same, Coffee It doesn’t need to be connect to internet so there are no cookies now.</p><h2 id="Data-Using"><a href="#Data-Using" class="headerlink" title="Data Using."></a>Data Using.</h2><p>I will only show your data if your want and always not to share anything data through anyway if you don’t want.</p><h2 id="Enforcement"><a href="#Enforcement" class="headerlink" title="Enforcement"></a>Enforcement</h2><p>I regularly review my compliance with this Policy. Please feel free to direct any questions or concerns regarding this Policy or my treatment of Personal Data by contacting me through my website.</p><h2 id="Changes-of-Privacy-Policy"><a href="#Changes-of-Privacy-Policy" class="headerlink" title="Changes of Privacy Policy"></a>Changes of Privacy Policy</h2><p>Coffee It may change from time to time. As a result, at times it may be necessary for me to make changes to this Privacy Policy. Accordingly, I reserve the right to update or modify this Privacy Policy at any time and from time to time without prior notice. Please review this policy periodically, and especially before you provide any Personal Data. This Privacy Policy was last updated on the date indicated above. Your continued use of Coffee It after any changes or revisions to this Privacy Policy shall indicate your agreement with the terms of such revised Privacy Policy.</p><h2 id="Contacting"><a href="#Contacting" class="headerlink" title="Contacting"></a>Contacting</h2><p>If you have any additional questions or concerns about this Policy or information practices, please feel free to contact me at any time at from my website or app.</p><hr><h1 id="Caffeine-Data-Sources"><a href="#Caffeine-Data-Sources" class="headerlink" title="Caffeine Data Sources"></a>Caffeine Data Sources</h1><p>up-to-dated caffeine data sources list.</p><p>Other than these sources, I also advice from <a href="https://www.caffeineinformer.com/category/coffee" target="_blank" rel="noopener">Caffeine Informer</a>, a website that have plenty data, to make sure my data was correct and enough.</p><h2 id="Capsule-Coffee"><a href="#Capsule-Coffee" class="headerlink" title="Capsule Coffee"></a>Capsule Coffee</h2><h3 id="Nespresso"><a href="#Nespresso" class="headerlink" title="Nespresso"></a>Nespresso</h3><ul><li>Official website</li></ul><p>ps. The official doesn’t conclude every specific type, but give me the range of a big type, so I take the average from the range.</p><h2 id="Coca-Cola"><a href="#Coca-Cola" class="headerlink" title="Coca-Cola"></a>Coca-Cola</h2><ul><li>Official website</li><li>Local market</li></ul><h2 id="Dr-Pepper"><a href="#Dr-Pepper" class="headerlink" title="Dr Pepper"></a>Dr Pepper</h2><ul><li>3rd party</li><li>Official website</li></ul><h2 id="Food-Restaurants"><a href="#Food-Restaurants" class="headerlink" title="Food Restaurants"></a>Food Restaurants</h2><h3 id="McDonald’s"><a href="#McDonald’s" class="headerlink" title="McDonald’s"></a>McDonald’s</h3><ul><li>Official website</li><li>Local restaurant</li></ul><h2 id="Monster"><a href="#Monster" class="headerlink" title="Monster"></a>Monster</h2><ul><li>Official website</li><li>Local market</li></ul><h2 id="Pepsi"><a href="#Pepsi" class="headerlink" title="Pepsi"></a>Pepsi</h2><ul><li>Official website</li><li>Local market</li></ul><h2 id="Starbucks"><a href="#Starbucks" class="headerlink" title="Starbucks"></a>Starbucks</h2><ul><li>Official website</li><li>iOS APP</li></ul>]]></content>
    
    <summary type="html">
    
      &lt;blockquote class=&quot;blockquote-center&quot;&gt;Coffee It - Track Caffeine in Simplest Way (Still Testing.)&lt;/blockquote&gt;

&lt;h1 id=&quot;Privacy-Policy&quot;&gt;&lt;a href=&quot;#Privacy-Policy&quot; class=&quot;headerlink&quot; title=&quot;Privacy Policy&quot;&gt;&lt;/a&gt;Privacy Policy&lt;/h1&gt;&lt;p&gt;This Privacy Policy relates to my use of any personally identifiable data (”Personal Data”) collected from you when using Coffee It. For now, I only read and write to APPLE Health APP through HealthKit, which is totally secure in transition. Coffee It now doesn’t have any server to collect or analysis these data.&lt;/p&gt;
    
    </summary>
    
      <category term="APP Policy" scheme="http://o1xhack.com/categories/APP-Policy/"/>
    
    
      <category term="ios" scheme="http://o1xhack.com/tags/ios/"/>
    
      <category term="app" scheme="http://o1xhack.com/tags/app/"/>
    
      <category term="policy" scheme="http://o1xhack.com/tags/policy/"/>
    
  </entry>
  
  <entry>
    <title>Swift 3 - Add SafariViewController as childViewController with SnapKit</title>
    <link href="http://o1xhack.com/2017/03/11/swift-learning/addchildview-safari/"/>
    <id>http://o1xhack.com/2017/03/11/swift-learning/addchildview-safari/</id>
    <published>2017-03-10T17:40:29.000Z</published>
    <updated>2016-05-25T07:54:29.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Intro"><a href="#Intro" class="headerlink" title="Intro"></a>Intro</h1><p>This article is trying to add SafariViewController as childviewcontroller. I’m using SnapKit to auto layout everything and Swift 3 as the language. </p><p>I also introduced some divide and multiply using of SnapKit that not describing much in official documents.</p><p>Download final <a href="https://github.com/o1xhack/addChildViewController" target="_blank" rel="noopener">Project here</a>.  </p><p>中文版教程：<a href="http://o1xhack.com/2017/03/08/swift-learning/addchildview-safari/">Swift 3 - 用 SnapKit 添加 SafariViewController 为 childViewController</a></p><blockquote class="blockquote-center"> <a href="http://o1xhack.com/dev/">Dev Person</a>：Developer the World. </blockquote><a id="more"></a><hr><h1 id="SnapKit"><a href="#SnapKit" class="headerlink" title="SnapKit"></a>SnapKit</h1><p><a href="http://snapkit.io" target="_blank" rel="noopener">SnapKit</a> is a DSL to make Auto Layout easy on both iOS and OS X.</p><h2 id="Why-using"><a href="#Why-using" class="headerlink" title="Why using?"></a>Why using?</h2><p>When I develop <a href="http://o1xhack.com/2017/02/21/infoit/">Info It</a>, I encountered a problem that when I trying to add constraints at Xcode interface, the Xcode give me crash every time I using it. And after I installed SnapKit inside, I found it was something wrong with Xcode that I cannot find out why (searching Google, Stackoverflow, etc won’t give me any answer). After I installed SnapKit and using it, it solved my problem automatically and the elegant code of SnapKit makes constraints, auto layout beautiful and easy.</p><h2 id="Install"><a href="#Install" class="headerlink" title="Install"></a>Install</h2><p><a href="http://snapkit.io/docs/" target="_blank" rel="noopener">SnapKit Document</a></p><p>Everyone can install it quickly using CocoaPods. This article will not describing details about install CocoaPods, I will directly install SnapKit, assuming you all installed CocoaPods.</p><p>Create a new project with Swift language. Open Terminal while Xcode project still open(I using iTerm). Then ‘cd’ to your project address, and init the podfile</p><p><code>&gt; pod init</code></p><p>After this command, add this line inside your podfile, the place like I did in picture.</p><p><code>pod &#39;SnapKit&#39;, &#39;~&gt; 3.0&#39;</code></p><p>Then install pod using commend:</p><p><code>&gt; pod install</code></p><p>While install SnapKit, do not close the project! After install successfully like picture, close the project and open the <code>.xcworkspace</code> file</p><p><img src="http://i.imgur.com/77cE892.png" alt=""></p><hr><h1 id="SafariViewController"><a href="#SafariViewController" class="headerlink" title="SafariViewController"></a>SafariViewController</h1><p>I will using “svc” for convenient for SafariViewController.</p><p>While you want using SafariViewController, you need to add SafariViewControllerDelegate after your class, and set two String we will using later as links:</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">ViewController</span>: <span class="title">UIViewController</span>, <span class="title">SFSafariViewControllerDelegate</span> </span>&#123;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// Insert two web link to test the child view</span></span><br><span class="line">    <span class="keyword">let</span> main: <span class="type">String</span> = <span class="string">"http://o1xhack.com/2017/02/21/infoit/"</span></span><br><span class="line">    <span class="keyword">let</span> update: <span class="type">String</span> = <span class="string">"http://o1xhack.com"</span></span><br></pre></td></tr></table></figure><p>Create a view and a button in the storyboard. (button using to test how to auto layout and also the change link of svc)</p><p>And connect the view and button into the controller file.</p><p><img src="http://i.imgur.com/7Dx2ZUP.png" alt=""></p><h2 id="addChildViewController"><a href="#addChildViewController" class="headerlink" title="addChildViewController"></a>addChildViewController</h2><p>Then add the code inside viewDidLoad function about the auto layout and also childviewcontroller.</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">override</span> <span class="function"><span class="keyword">func</span> <span class="title">viewDidLoad</span><span class="params">()</span></span> &#123;</span><br><span class="line">    <span class="keyword">super</span>.viewDidLoad()</span><br><span class="line">    </span><br><span class="line">    showView.snp.makeConstraints&#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">        make.edges.equalTo(<span class="keyword">self</span>.view).inset(<span class="type">UIEdgeInsetsMake</span>(<span class="number">0</span>,<span class="number">0</span>,<span class="number">60</span>,<span class="number">0</span>))</span><br><span class="line">    &#125;</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">let</span> svc = <span class="type">SFSafariViewController</span>(url: <span class="type">URL</span>(string: main)!)</span><br><span class="line">    svc.delegate = <span class="keyword">self</span></span><br><span class="line">    <span class="keyword">self</span>.addChildViewController(svc)</span><br><span class="line">    <span class="keyword">self</span>.showView.addSubview(svc.view)</span><br><span class="line">    svc.didMove(toParentViewController: <span class="keyword">self</span>)</span><br><span class="line">    </span><br><span class="line">    svc.view.snp.makeConstraints&#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">        make.edges.equalTo(<span class="keyword">self</span>.showView)</span><br><span class="line">    &#125;</span><br><span class="line">&#125;    </span><br></pre></td></tr></table></figure><h3 id="line-4-6"><a href="#line-4-6" class="headerlink" title="line 4-6:"></a>line 4-6:</h3><p>Make constraint of the showView(the view will be the parent of our svc), this code using SnapKit to make constraint of the showView compare to view, with bottom 60 to the view. Which will make an empty space of the bottom only.</p><h3 id="line-8-12"><a href="#line-8-12" class="headerlink" title="line 8-12:"></a>line 8-12:</h3><p>Line 8 set svc to a new SafariViewController with url of my previous settings. And line 9 set the svc delegate to self.<br>Line 10 add the svc as childviewcontroller, and then we can using it add to showview’s subview in line 11.<br>Line 12 tells the controller that the svc has moved to parentviewcontroller, which is the showView.</p><h3 id="line-14-16"><a href="#line-14-16" class="headerlink" title="line 14-16:"></a>line 14-16:</h3><p>This is basic the same as line 4-6, we set svc’s contraint just fit the showView, kind like set it to view(0,0,60,0), but since svc is the child view, we only need to set it’s constraint to it’s parent view. </p><h3 id="Result"><a href="#Result" class="headerlink" title="Result"></a>Result</h3><p>After these codes, we run the project and will get this kind of simulation that the button was covered by the svc, which caused by we not setting any constraint with it.</p><p><img src="http://i.imgur.com/xPAUgcc.png" alt=""></p><hr><h1 id="SnapKit-again"><a href="#SnapKit-again" class="headerlink" title="SnapKit again"></a>SnapKit again</h1><p>Once for all, we know how to constraint a view with spacing 60 to the bottom, let’s do some work to set constraint of the button based on the showView and view.</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">change.snp.makeConstraints &#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">        make.centerX.equalTo(showView)</span><br><span class="line">        make.top.equalTo(showView.snp.bottom).offset(<span class="number">20</span>)</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>Here for the code of <code>change.snp.makeConstraints</code>, we will need to add this part directly after the <code>showView.snp.makeConstraints</code> since we need to make constraint after and based on the showView.</p><p>For line 2 we make the button center horizontally with showView, if you using Xcode interface to drag that before, it will be familiar to you.<br>For line 3, we set the top of button has an offset distance of 20 to bottom of the viewShow. Since we make constraint that the viewShow will always be 60 to the bottom to the view, we can be sure the 20 distance will always working no matter the devices are. (Later, I will try to using another way of divide to set the layout, which is more elegant way.)</p><p>Run project, and you will see the button is just under the svc and center exactly same with svc.</p><p><img src="http://i.imgur.com/ZBtJswu.png" alt=""></p><hr><h1 id="Update-SVC"><a href="#Update-SVC" class="headerlink" title="Update SVC"></a>Update SVC</h1><p>Now we need to write a new function to update the svc link once we click our button, and this is not quiet difficult, we just need to drag the button to our code and create an action.</p><p><img src="http://i.imgur.com/O5dJFEC.png" alt=""></p><p>When we trying to add code in this function same as the one we add in viewDidLoad, and run the project, we will find that after we click the button, nothing happened! </p><p>The code we add are right here: So why is this happen?  (Remember you cannot just copy this code sicne the IBAction need you to connect yourself.)</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">@IBAction</span> <span class="function"><span class="keyword">func</span> <span class="title">changeWebsite</span><span class="params">(<span class="number">_</span> sender: UIButton)</span></span> &#123;</span><br><span class="line">    <span class="keyword">let</span> svc = <span class="type">SFSafariViewController</span>(url: <span class="type">URL</span>(string: update)!)</span><br><span class="line">    svc.delegate = <span class="keyword">self</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">self</span>.addChildViewController(svc)</span><br><span class="line">    <span class="keyword">self</span>.showView.addSubview(svc.view)</span><br><span class="line">    svc.didMove(toParentViewController: <span class="keyword">self</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>Well, that is because we don’t add any constraint to the svc we create in this function, so the system don’t know the layout the svc and where it should be. So we trying to add <code>svc.snp.makeConstraints</code> same as the one in viewDidLoad and the code become:</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">@IBAction</span> <span class="function"><span class="keyword">func</span> <span class="title">changeWebsite</span><span class="params">(<span class="number">_</span> sender: UIButton)</span></span> &#123;</span><br><span class="line">    <span class="keyword">let</span> svc = <span class="type">SFSafariViewController</span>(url: <span class="type">URL</span>(string: update)!)</span><br><span class="line">    svc.delegate = <span class="keyword">self</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">self</span>.addChildViewController(svc)</span><br><span class="line">    <span class="keyword">self</span>.showView.addSubview(svc.view)</span><br><span class="line">    svc.didMove(toParentViewController: <span class="keyword">self</span>)</span><br><span class="line">    </span><br><span class="line">    svc.view.snp.makeConstraints&#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">        make.edges.equalTo(<span class="keyword">self</span>.showView)</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>Then we run the project and click the button, we will find the svc change the link and load a new website: (the first load is the article, and second is the main page.)</p><p><img src="http://i.imgur.com/UtWsXku.png" alt=""></p><hr><h1 id="SnapKit-Divide-Multiply"><a href="#SnapKit-Divide-Multiply" class="headerlink" title="SnapKit Divide / Multiply"></a>SnapKit Divide / Multiply</h1><p>This project is basically done with all, now you know how to using SnapKit to auto layout then to make safari as an childview in anywhere. Well, but using precise number of offset is not very good. Why? Cause in the picture, you will find we don’t consider that height of the button and it has more white space from bottom of showView to top of button than bottom of button to bottom of view.</p><p>So we will using a more auto way: Divide the total view height and using fraction to auto layout it.</p><p>Now consider that we only need relatively little space for button and most of our view to svc, I will assume we divide the view into 10 parts, and the svc occupied 9 out of 10. So we are trying to divide the view into parts, but when in code we actually need to multiply the height with 0.9 because dividing height into 9/10 is not quick than multiply (Using your math skill to calculate).</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">showView.snp.makeConstraints&#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">        make.top.equalTo(<span class="keyword">self</span>.view).offset(<span class="number">0</span>)</span><br><span class="line">        make.<span class="keyword">right</span>.equalTo(<span class="keyword">self</span>.view).offset(<span class="number">0</span>)</span><br><span class="line">        make.<span class="keyword">left</span>.equalTo(<span class="keyword">self</span>.view).offset(<span class="number">0</span>)</span><br><span class="line">        make.height.equalTo(<span class="keyword">self</span>.view).multipliedBy(<span class="number">0.9</span>)</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>We change the make edge into details of top, right, left since we need a limit of height rather than based on edges. Line 2-4 makes the showView has no offset to the view of top, right and left. Line 5 set the height to be the 90% of the height of the view(superview). Run the project and you will find this really works:</p><p><img src="http://i.imgur.com/wOiEHXT.png" alt=""></p><p>Then we will handle the button layout that also using multiply and divide way. To make the button fit equally with consideration of its height, we will divide the rest part of view(1-0.9=0.1) into 3 parts. Equally fraction of top white space, height and bottom white space. this means we multiply the height with 0.1*0.3=0.03 and same as the white space from bottom of showView and top of button. Let’s try it:</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">change.snp.makeConstraints &#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">    make.centerX.equalTo(showView)</span><br><span class="line">    make.top.equalTo(showView.snp.bottom).multipliedBy(<span class="number">0.03</span>)</span><br><span class="line">    make.height.equalTo(<span class="keyword">self</span>.view).multipliedBy(<span class="number">0.03</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>Woops! We got really wired one:</p><p><img src="http://i.imgur.com/LLSlJSN.png" alt=""></p><p>Why is this happening?? That is because we are thinking a way that computer doesn’t understand!</p><p>So actually we want the rest 10% of view divide into 3 parts, that is 0.1/3=0.0333… which is infinite, so we just set the height to 0.034 of the height and the other two white space to 0.033. But what we need to do is tell the computer that it is 0.967(1-0.967) to the bottom compare to the view, not 0.03 compare to the showView. This is how multiply and divide works, we actually multiply the object’s height, not what we think that auto calculate the distance of white space, so changing the code into the following:</p><figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">change.snp.makeConstraints &#123; (make) -&gt; <span class="type">Void</span> <span class="keyword">in</span></span><br><span class="line">    make.centerX.equalTo(showView)</span><br><span class="line">    make.bottom.equalTo(<span class="keyword">self</span>.view).multipliedBy(<span class="number">0.967</span>)</span><br><span class="line">    make.height.equalTo(<span class="keyword">self</span>.view).multipliedBy(<span class="number">0.034</span>)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>And it worked!</p><p><img src="http://i.imgur.com/KSqrPZg.png" alt=""></p><h2 id="Why-using-1"><a href="#Why-using-1" class="headerlink" title="Why using?"></a>Why using?</h2><p>You can see that multiply and divide can be quite confused especially you have two or more objects need to layout, but once for all, when you done the calculation, you will be good from that day to the day you need to add a new object! You will not need to consider different devices and the impact of using number as distanced to caused some button or label be covered by others.</p>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;Intro&quot;&gt;&lt;a href=&quot;#Intro&quot; class=&quot;headerlink&quot; title=&quot;Intro&quot;&gt;&lt;/a&gt;Intro&lt;/h1&gt;&lt;p&gt;This article is trying to add SafariViewController as childviewcontroller. I’m using SnapKit to auto layout everything and Swift 3 as the language. &lt;/p&gt;
&lt;p&gt;I also introduced some divide and multiply using of SnapKit that not describing much in official documents.&lt;/p&gt;
&lt;p&gt;Download final &lt;a href=&quot;https://github.com/o1xhack/addChildViewController&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Project here&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;中文版教程：&lt;a href=&quot;http://o1xhack.com/2017/03/08/swift-learning/addchildview-safari/&quot;&gt;Swift 3 - 用 SnapKit 添加 SafariViewController 为 childViewController&lt;/a&gt;&lt;/p&gt;
&lt;blockquote class=&quot;blockquote-center&quot;&gt; &lt;a href=&quot;http://o1xhack.com/dev/&quot;&gt;Dev Person&lt;/a&gt;：Developer the World. &lt;/blockquote&gt;
    
    </summary>
    
      <category term="Swift Learning（Swift 语言学习）" scheme="http://o1xhack.com/categories/Swift-Learning%EF%BC%88Swift-%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%EF%BC%89/"/>
    
    
      <category term="github" scheme="http://o1xhack.com/tags/github/"/>
    
      <category term="language" scheme="http://o1xhack.com/tags/language/"/>
    
      <category term="learning" scheme="http://o1xhack.com/tags/learning/"/>
    
      <category term="swift3.0" scheme="http://o1xhack.com/tags/swift3-0/"/>
    
      <category term="SafariViewController" scheme="http://o1xhack.com/tags/SafariViewController/"/>
    
      <category term="SnapKit" scheme="http://o1xhack.com/tags/SnapKit/"/>
    
  </entry>
  
  <entry>
    <title>关于 o1xhack.com 的 blog 搭建</title>
    <link href="http://o1xhack.com/2017/02/20/blog/about-blog/"/>
    <id>http://o1xhack.com/2017/02/20/blog/about-blog/</id>
    <published>2017-02-20T00:11:00.000Z</published>
    <updated>2017-02-19T08:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h1><p>o1xhack.com 域名购买自 goDaddy，使用 dnspod 进行解析，基于 hexo 和 github page 搭建的静态博客。</p><p>hexo 主题使用大名鼎鼎的 next。</p><a id="more"></a><h2 id="菜单栏说明"><a href="#菜单栏说明" class="headerlink" title="菜单栏说明"></a>菜单栏说明</h2><h3 id="开发者："><a href="#开发者：" class="headerlink" title="开发者："></a>开发者：</h3><blockquote><p>既然作为一个开发者，没有一个像样的页面说明可不行！</p></blockquote><ul><li>iOS 开发经历及 Swift 学习相关</li><li>学校项目以及学习相关分享（still struggle！）</li></ul><h3 id="尝新者："><a href="#尝新者：" class="headerlink" title="尝新者："></a>尝新者：</h3><blockquote><p>从接触 cs 之前就已经尝试了不少 app，iOS 为主<br>作为一个准备从事科技行业的骚年，怎么能没有尝新的态度呢？</p></blockquote><ul><li>iOS APP 相关分享</li><li>macOS 软件及使用分享</li><li>Kindle 等电子产品分享</li><li>智能家居、智能硬件分享</li></ul><h3 id="生活者："><a href="#生活者：" class="headerlink" title="生活者："></a>生活者：</h3><blockquote><p>生活着，就是全部。</p></blockquote><ul><li>数据生活，量化自我</li><li>读书看报听播客</li><li>生活分享</li><li>相关 Tips</li></ul><hr><h1 id="更新时间线"><a href="#更新时间线" class="headerlink" title="更新时间线"></a>更新时间线</h1><h2 id="2017-2-24"><a href="#2017-2-24" class="headerlink" title="2017.2.24"></a>2017.2.24</h2><ul><li>增加了 生活者</li></ul><h2 id="2017-2-19"><a href="#2017-2-19" class="headerlink" title="2017.2.19"></a>2017.2.19</h2><ul><li>增加了 开发者、尝新者</li><li>定制主题</li></ul><h2 id="2017-2-18"><a href="#2017-2-18" class="headerlink" title="2017.2.18"></a>2017.2.18</h2><ul><li>blog 正式上线</li><li>增加了 分类、标签、关于我</li></ul><hr><h1 id="定制主题"><a href="#定制主题" class="headerlink" title="定制主题"></a>定制主题</h1><ul><li><a href="http://wellliu.com/2016/12/29/Blog居中调整-基于Next主题/" target="_blank" rel="noopener">首页文章标题、阅读更多显示居中</a></li></ul>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;简介&quot;&gt;&lt;a href=&quot;#简介&quot; class=&quot;headerlink&quot; title=&quot;简介&quot;&gt;&lt;/a&gt;简介&lt;/h1&gt;&lt;p&gt;o1xhack.com 域名购买自 goDaddy，使用 dnspod 进行解析，基于 hexo 和 github page 搭建的静态博客。&lt;/p&gt;
&lt;p&gt;hexo 主题使用大名鼎鼎的 next。&lt;/p&gt;
    
    </summary>
    
      <category term="blog" scheme="http://o1xhack.com/categories/blog/"/>
    
    
      <category term="blog" scheme="http://o1xhack.com/tags/blog/"/>
    
  </entry>
  
</feed>
