New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GitHub issues as comments for posts #363

Merged
merged 1 commit into from Jul 15, 2017

Conversation

Projects
None yet
2 participants
@orta
Member

orta commented Jul 15, 2017

Allows adding comments to posts - fixes #300

This only applies to epic-styled posts. In order to do it, you need to create an issue like #362 then provide that inside the YAML front-matter.

Our implementation uses https://github.com/orta/gh-commentify behind the scenes to ensure we don't get rate-limited by GitHub. It uses a token from an account with no access to anything.

When there are comments

screen shot 2017-07-15 at 14 02 12 1
screen shot 2017-07-15 at 14 02 16

When there are no comments

screen shot 2017-07-15 at 14 06 30

@orta orta self-assigned this Jul 15, 2017

@ArtsyOpenSource

This comment has been minimized.

Show comment
Hide comment
@ArtsyOpenSource

ArtsyOpenSource Jul 15, 2017

Proselint found issues

_posts/2017-07-06-React-Native-for-iOS-devs.markdown

Line Message Severity
204 Substitute 'damn' every time you're inclined to write 'very;' your editor will delete it and the writing will be just as it should be. Found 9 times elsewhere. warning
260 No paragraph should start with a 'But'. warning
414 'deceptively' is a bit of a skunked term — impossible to use without issue. Find some other way to say it. warning
497 Redundancy. Use 'same' instead of 'exact same'. warning
640 Redundancy. Use 'same' instead of '[exact same'. warning

Spell Checker found issues

_posts/2017-07-06-React-Native-for-iOS-devs.markdown

Line Typo
14 be comfortable with the Xcode toolset, recommending a change this d
24 wful lot, so free up at least 45 minutes, make a tea and then
45 cremental rebuild and it took 9 seconds to get me back into m
45 app with the new change, on a 2015 MacBook Pro. 9 seconds per ch
45 ith the new change, on a 2015 MacBook Pro. 9 seconds per change lea
45 hange, on a 2015 MacBook Pro. 9 seconds per change leaves a l
55 set of all available options (backgroundColor, frame, alpha, etc) and then
55 pha, etc) and then eventually UIKit would re-concile all changes
55 d then eventually UIKit would re-concile all changes to all views in b
57 nto components, then the tree strucutre for those components and fina
72 : function(){} }" data-title="SearchQueryInput">

SearchQueryInput

</div
73 Enabled: false }" data-title="ScrollView">

ScrollView

74 img/tracy.png' }" data-title="ArtistResult">

ArtistResult

74 data-title="ArtistResult">

ArtistResult

75 img/tom-t.png' }" data-title="ArtistResult">

ArtistResult

184 ewController`s which exist as 2 interlinked trees of hierarch
188 To try to undestand this, let's take a trivial ex
190 In UIKit-world you would:
195 You then create a new view heirarchy for your model, and pass down
218 I felt that [this guide from uberVU][props-guide] as well as the
229 > From [uberVU's react-guide][ubervu]
250 - Officially: iOS, Android, tvOS & VR.
250 icially: iOS, Android, tvOS & VR.
251 - Unofficially: macOS, Windows & Ubuntu.
255 - RCTText for iOS and tvOS - [which uses NSTextStorage,
255 or iOS and tvOS - [which uses NSTextStorage, and drawRect][1]
255 which uses NSTextStorage, and drawRect][1]
256 id - which uses [Canvas and a DrawCommand][2]
257 Three.js view primitive for VR - which uses [BitmapFontGeome
257 imitive` for VR - which uses [BitmapFontGeometry][3] + [Shaders][4]
257 es [BitmapFontGeometry][3] + [Shaders][4]
258 - RCTText for macOS [which also uses NSTextStorag
258 t` for macOS [which also uses NSTextStorage, and drawRect][5]
258 also uses NSTextStorage, and drawRect][5]
259 ` for Windows - which uses a [RichTextBlock][6]
260 tem` for Ubuntu - Which uses [QString to render][7]
264 vaScript runtime (running via JavaScriptCore in your app) which sends [mes
270 pecific to iOS. Shout-out to [Wix][] and [AirBnB][] who are doi
270 OS. Shout-out to [Wix][] and [AirBnB][] who are doing great work i
287 me terminal skills, and about 5 minutes, it shouldn't be more
381 , which is why you see .android.js or .ios.js</code
381 >.android.js or .ios.js.

383

index.android.js and index.ios.js

383 x.android.js and index.ios.js are the launching poi
385

In the ios folder, we have the na

385 s referring to a lot of xcprojects which are inside your
385 ich are inside your node**_modules** folder.

387 p>The Xcode project is really barebones, it's just an AppDelega
387 barebones, it's just an AppDelegate that creates a U
387 see that it references index.ios.js which is where your Ja
389

Then you have the package.json which is like an Xcode

389 .json which is like an Xcodeproj + Podfile in one, and the <co
389 which is like an Xcodeproj + Podfile in one, and the node_mo
389 ile in one, and the node**_modules** folder. This file hous
395 erform a shake gesture (cmd + ctrl + z) and in the
395 a shake gesture (cmd + ctrl + z) and in the React
399 credibly positive change from 9 seconds per iteration from my
406 - [Egghead.io - React Native][egg-rn]
408 - [Building the f8 2016 app][makeitopen]
408 - [Building the f8 2016 app][makeitopen]
414 language with a lot of weird gotchas, which makes it easy downplay
416 nowadays. Tools like ESLint, TSLint, Babel, Prettier, TypeScript
430
430 it hard to write bad code in TS
431 ver argue about syntax for JS/TS/CSS/JSON
443 ow to TypeScript with roughly 2 weeks work, then a week to co
447 Swift. My code is statically analyzed as I type, it is auto-styled
449 wise, TypeScript doesn't have enums with associated types, which
449 ], which work really well for data-modeling.
455 ## Node.js
457 (called V8, their version of JavaScriptCore) with a UNIX-like baseline se
461 single-function to typical a "XYZKit" you would expect from a Coco
461 ZKit" you would expect from a CocoaPod. As JavaScript tends to be bu
463 you write is executed inside JavaScriptCore and so doesn't have access to
471 th React Native since version 0**.45** includes work from Artsy and
471 includes work from Artsy and [futurice][] making it possible via con
477 ve, instead of something like LLDB. It supports all of the kinds
481 ticularly the change in Xcode 9 which allows tests to run in
489 ably one or two people making XCTest, one person trying to get som
491 use linux CI servers and get 3**-4** minute CI runs.
497 This is not dynamically swizzing or fishhooking methods, you c
497 s not dynamically swizzing or fishhooking methods, you can ship new Jav
497 app store rejections early in 2017. [React Native wasn't the cau
501 o provide a simple version of Testflight for our JavaScript code.
503 e process, so it's a cultural artifact rather than technical. So a d
509 u're potentially buying a [> $100,000 artwork][artwork-search].
509 potentially buying a [> $100,000 artwork][artwork-search]. We'
509 s is you - get in touch (orta@artsymail.com) ;)_.
513 e platform and shine. Lots of probablys, yes, but it fits the questio
517 t the same size as ours with ~2 years of React Native adoptio
521 eact Native world in the last 6 months is Create React Native
521 s is Create React Native App (CRNA). This is the "super easy to
523 /Java to them is unappealing. CRNA actually removes the ability
525 [Expo][] are a pretty new VC-backed company, whose work is entire
525 rom the App Store to run your CRNA project on any iOS/Android de
527 With CRNA you are giving up control of
527 lot on the ease-of-use side. CRNA doesn't force the project to
529 eld app (e.g. something new), CRNA may be your best option. When
533 he answer is "well enough for 80% of all apps, it's enough for
544 ut if you're talking the next 5 years - maybe it's not that r
544 Script world moves real fast, 5 years ago React didn't exist
546 omfortable being able to make PRs back to the project, or feel
548 'd be willing to do this too: AirBnb, Expo, Uber, Microsoft, Geeky
548 to do this too: AirBnb, Expo, Uber, Microsoft, GeekyAnts and Wix
548 irBnb, Expo, Uber, Microsoft, GeekyAnts and Wix all participate at [a
548 ber, Microsoft, GeekyAnts and Wix all participate at [a very gr
548 ship today will work with iOS 12 and so on - as they need that
550 As a relevant example, Three20 had a very [reasonable deprec
550 meworks like React Native and Three20 lower the barrier to entry co
552 tive, in Artsy there are only 2**-3** projects that are 5 years old
552 re only 2-3 projects that are 5 years old (Artsy was roughly
552 (Artsy was roughly founded in 2010) and I know a few of those ar
552 ahead. Our keystone [iOS app, Eigen][eigen] was started in 2013,
552 Eigen][eigen] was started in 2013, and has already gone through
552 and has already gone through 2 complete internal transformat
552 e. It's very feasible that in 4 years we'll be at a very diff
554 hat is ongoing in [this React Conf keynote from Jing Chen][fb-br
554 [this React Conf keynote from Jing Chen][fb-brown].
558 on, we switched [from REST to GrahpQL][graphql-ios] at the same tim
562 read, so you cannot block the UIKit UI thread
569 ons in React Native, the new [ListView][] component provides quite a
569 t provides quite a lot of the behavior you might want to use scroll
571 ntrollers do a lot of work on init, then generally don't do anym
571 init, then generally don't do anymore heavy lifting. So aside from
575 or their open source. Back in 2015, they made changes to the lic
579 mentioning. React Native has [51 dependencies][rn-deps], which
579 resolved comes up to [around ~650 dependent][libs-rn-deps] proj
581 endencies you don't need like iAd or SpriteKit.
581 es you don't need like iAd or SpriteKit.
591 Our main app Eigen, is a UIViewController brow
593 d to say that [our Kiosk app, Eidolon][eidolon], might not be a goo
593 r, I'm not so sure about this anymore.
595 er and making it a JavaScript EventEmitter isn't a big-jump.
597 Our tvOS app Emergence could probably
597 it would depend on how stable tvOS support feels.
599 to create a simple Core Data backend, have reduced those worries.
626 are consumed by our app as a CocoaPod. This CocoaPods exposes `UIVi
626 is the probably same pattern Airbnb, and Facebook use.
628 r you've read post, check out AirBnB's experiences [in this video][8
632 I'd recommend to start with a CRNA app, it's a good starting poi
640 other. Which was unimaginable 2 years ago. We can truly consi

Generated by 🚫 Danger

ArtsyOpenSource commented Jul 15, 2017

Proselint found issues

_posts/2017-07-06-React-Native-for-iOS-devs.markdown

Line Message Severity
204 Substitute 'damn' every time you're inclined to write 'very;' your editor will delete it and the writing will be just as it should be. Found 9 times elsewhere. warning
260 No paragraph should start with a 'But'. warning
414 'deceptively' is a bit of a skunked term — impossible to use without issue. Find some other way to say it. warning
497 Redundancy. Use 'same' instead of 'exact same'. warning
640 Redundancy. Use 'same' instead of '[exact same'. warning

Spell Checker found issues

_posts/2017-07-06-React-Native-for-iOS-devs.markdown

Line Typo
14 be comfortable with the Xcode toolset, recommending a change this d
24 wful lot, so free up at least 45 minutes, make a tea and then
45 cremental rebuild and it took 9 seconds to get me back into m
45 app with the new change, on a 2015 MacBook Pro. 9 seconds per ch
45 ith the new change, on a 2015 MacBook Pro. 9 seconds per change lea
45 hange, on a 2015 MacBook Pro. 9 seconds per change leaves a l
55 set of all available options (backgroundColor, frame, alpha, etc) and then
55 pha, etc) and then eventually UIKit would re-concile all changes
55 d then eventually UIKit would re-concile all changes to all views in b
57 nto components, then the tree strucutre for those components and fina
72 : function(){} }" data-title="SearchQueryInput">

SearchQueryInput

</div
73 Enabled: false }" data-title="ScrollView">

ScrollView

74 img/tracy.png' }" data-title="ArtistResult">

ArtistResult

74 data-title="ArtistResult">

ArtistResult

75 img/tom-t.png' }" data-title="ArtistResult">

ArtistResult

184 ewController`s which exist as 2 interlinked trees of hierarch
188 To try to undestand this, let's take a trivial ex
190 In UIKit-world you would:
195 You then create a new view heirarchy for your model, and pass down
218 I felt that [this guide from uberVU][props-guide] as well as the
229 > From [uberVU's react-guide][ubervu]
250 - Officially: iOS, Android, tvOS & VR.
250 icially: iOS, Android, tvOS & VR.
251 - Unofficially: macOS, Windows & Ubuntu.
255 - RCTText for iOS and tvOS - [which uses NSTextStorage,
255 or iOS and tvOS - [which uses NSTextStorage, and drawRect][1]
255 which uses NSTextStorage, and drawRect][1]
256 id - which uses [Canvas and a DrawCommand][2]
257 Three.js view primitive for VR - which uses [BitmapFontGeome
257 imitive` for VR - which uses [BitmapFontGeometry][3] + [Shaders][4]
257 es [BitmapFontGeometry][3] + [Shaders][4]
258 - RCTText for macOS [which also uses NSTextStorag
258 t` for macOS [which also uses NSTextStorage, and drawRect][5]
258 also uses NSTextStorage, and drawRect][5]
259 ` for Windows - which uses a [RichTextBlock][6]
260 tem` for Ubuntu - Which uses [QString to render][7]
264 vaScript runtime (running via JavaScriptCore in your app) which sends [mes
270 pecific to iOS. Shout-out to [Wix][] and [AirBnB][] who are doi
270 OS. Shout-out to [Wix][] and [AirBnB][] who are doing great work i
287 me terminal skills, and about 5 minutes, it shouldn't be more
381 , which is why you see .android.js or .ios.js</code
381 >.android.js or .ios.js.

383

index.android.js and index.ios.js

383 x.android.js and index.ios.js are the launching poi
385

In the ios folder, we have the na

385 s referring to a lot of xcprojects which are inside your
385 ich are inside your node**_modules** folder.

387 p>The Xcode project is really barebones, it's just an AppDelega
387 barebones, it's just an AppDelegate that creates a U
387 see that it references index.ios.js which is where your Ja
389

Then you have the package.json which is like an Xcode

389 .json which is like an Xcodeproj + Podfile in one, and the <co
389 which is like an Xcodeproj + Podfile in one, and the node_mo
389 ile in one, and the node**_modules** folder. This file hous
395 erform a shake gesture (cmd + ctrl + z) and in the
395 a shake gesture (cmd + ctrl + z) and in the React
399 credibly positive change from 9 seconds per iteration from my
406 - [Egghead.io - React Native][egg-rn]
408 - [Building the f8 2016 app][makeitopen]
408 - [Building the f8 2016 app][makeitopen]
414 language with a lot of weird gotchas, which makes it easy downplay
416 nowadays. Tools like ESLint, TSLint, Babel, Prettier, TypeScript
430
430 it hard to write bad code in TS
431 ver argue about syntax for JS/TS/CSS/JSON
443 ow to TypeScript with roughly 2 weeks work, then a week to co
447 Swift. My code is statically analyzed as I type, it is auto-styled
449 wise, TypeScript doesn't have enums with associated types, which
449 ], which work really well for data-modeling.
455 ## Node.js
457 (called V8, their version of JavaScriptCore) with a UNIX-like baseline se
461 single-function to typical a "XYZKit" you would expect from a Coco
461 ZKit" you would expect from a CocoaPod. As JavaScript tends to be bu
463 you write is executed inside JavaScriptCore and so doesn't have access to
471 th React Native since version 0**.45** includes work from Artsy and
471 includes work from Artsy and [futurice][] making it possible via con
477 ve, instead of something like LLDB. It supports all of the kinds
481 ticularly the change in Xcode 9 which allows tests to run in
489 ably one or two people making XCTest, one person trying to get som
491 use linux CI servers and get 3**-4** minute CI runs.
497 This is not dynamically swizzing or fishhooking methods, you c
497 s not dynamically swizzing or fishhooking methods, you can ship new Jav
497 app store rejections early in 2017. [React Native wasn't the cau
501 o provide a simple version of Testflight for our JavaScript code.
503 e process, so it's a cultural artifact rather than technical. So a d
509 u're potentially buying a [> $100,000 artwork][artwork-search].
509 potentially buying a [> $100,000 artwork][artwork-search]. We'
509 s is you - get in touch (orta@artsymail.com) ;)_.
513 e platform and shine. Lots of probablys, yes, but it fits the questio
517 t the same size as ours with ~2 years of React Native adoptio
521 eact Native world in the last 6 months is Create React Native
521 s is Create React Native App (CRNA). This is the "super easy to
523 /Java to them is unappealing. CRNA actually removes the ability
525 [Expo][] are a pretty new VC-backed company, whose work is entire
525 rom the App Store to run your CRNA project on any iOS/Android de
527 With CRNA you are giving up control of
527 lot on the ease-of-use side. CRNA doesn't force the project to
529 eld app (e.g. something new), CRNA may be your best option. When
533 he answer is "well enough for 80% of all apps, it's enough for
544 ut if you're talking the next 5 years - maybe it's not that r
544 Script world moves real fast, 5 years ago React didn't exist
546 omfortable being able to make PRs back to the project, or feel
548 'd be willing to do this too: AirBnb, Expo, Uber, Microsoft, Geeky
548 to do this too: AirBnb, Expo, Uber, Microsoft, GeekyAnts and Wix
548 irBnb, Expo, Uber, Microsoft, GeekyAnts and Wix all participate at [a
548 ber, Microsoft, GeekyAnts and Wix all participate at [a very gr
548 ship today will work with iOS 12 and so on - as they need that
550 As a relevant example, Three20 had a very [reasonable deprec
550 meworks like React Native and Three20 lower the barrier to entry co
552 tive, in Artsy there are only 2**-3** projects that are 5 years old
552 re only 2-3 projects that are 5 years old (Artsy was roughly
552 (Artsy was roughly founded in 2010) and I know a few of those ar
552 ahead. Our keystone [iOS app, Eigen][eigen] was started in 2013,
552 Eigen][eigen] was started in 2013, and has already gone through
552 and has already gone through 2 complete internal transformat
552 e. It's very feasible that in 4 years we'll be at a very diff
554 hat is ongoing in [this React Conf keynote from Jing Chen][fb-br
554 [this React Conf keynote from Jing Chen][fb-brown].
558 on, we switched [from REST to GrahpQL][graphql-ios] at the same tim
562 read, so you cannot block the UIKit UI thread
569 ons in React Native, the new [ListView][] component provides quite a
569 t provides quite a lot of the behavior you might want to use scroll
571 ntrollers do a lot of work on init, then generally don't do anym
571 init, then generally don't do anymore heavy lifting. So aside from
575 or their open source. Back in 2015, they made changes to the lic
579 mentioning. React Native has [51 dependencies][rn-deps], which
579 resolved comes up to [around ~650 dependent][libs-rn-deps] proj
581 endencies you don't need like iAd or SpriteKit.
581 es you don't need like iAd or SpriteKit.
591 Our main app Eigen, is a UIViewController brow
593 d to say that [our Kiosk app, Eidolon][eidolon], might not be a goo
593 r, I'm not so sure about this anymore.
595 er and making it a JavaScript EventEmitter isn't a big-jump.
597 Our tvOS app Emergence could probably
597 it would depend on how stable tvOS support feels.
599 to create a simple Core Data backend, have reduced those worries.
626 are consumed by our app as a CocoaPod. This CocoaPods exposes `UIVi
626 is the probably same pattern Airbnb, and Facebook use.
628 r you've read post, check out AirBnB's experiences [in this video][8
632 I'd recommend to start with a CRNA app, it's a good starting poi
640 other. Which was unimaginable 2 years ago. We can truly consi

Generated by 🚫 Danger

@orta orta merged commit d20da8f into source Jul 15, 2017

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

@orta orta deleted the comments branch Jul 15, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment