Skip to content
This repository has been archived by the owner on Feb 19, 2022. It is now read-only.

Mobile section #47

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open

Mobile section #47

wants to merge 18 commits into from

Conversation

jevakallio
Copy link

@jevakallio jevakallio commented Sep 30, 2016

WORK IN PROGRESS

Main branch for mobile development playbook. Plan is to create sub-section branches off the main feature branch to discuss and review particulars.

Discussion for playbook structure, the index document, and future chapter contents is welcome here. Detailed chapter contents to be discussed in section branches as they are started.

@ryan-roemer
Copy link
Member

Great start! Just a few comments so far.

I'll let @kenwheeler comment more as to substance.

Oh, and make sure to follow https://github.com/FormidableLabs/formidable-playbook/blob/master/CONTRIBUTING.md before final submission for review to pass CI.

@jevakallio
Copy link
Author

I have a few sample chapters up (indicated in the PR description ☝️) for review. I have tendency towards verbosity, would appreciate notes on:

  • style - is this appropriate for the playbook or should I refocus (@ryan-roemer)
  • content - do you find this type of content useful (@kenwheeler)

Ryan, your previous comment mentioned you have "a few comments" but I can not see them. Were they perhaps written in review mode and review not concluded?

Copy link
Member

@ryan-roemer ryan-roemer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ryan, your previous comment mentioned you have "a few comments" but I can not see them. Were they perhaps written in review mode and review not concluded?

Ugh. The new "integrated review" feature had all of my comments as pending...

style - is this appropriate for the playbook or should I refocus

The existing playbook is more like one-off, very specific "recipes" for scenarios (like "tree shaking" or "code splitting" or "source maps" or "mono repo vs. multi repo"). This is mostly because I have very specific patterns / "problem / solution" things to get up because we end up repeating them everywhere.

This is more of an introduction and narrative walkthrough, which I'd say that longer term is perhaps more useful for the playbook to be. So as long as @kenwheeler 's on board for content and terseness, I'm on board for the more overarching tutorial nature of the mobile meta section!

Options:
* Bitrise.io,
* Jenkins + Private Build Server,
* Microsoft VSTS + MacInCloud build agents)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: Extra )

* Bitrise.io,
* Jenkins + Private Build Server,
* Microsoft VSTS + MacInCloud build agents)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are things like Travis / CircleCI also available?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Travis and CircleCI are options, but the pricing for Mac build servers are somewhat overpriced. CircleCI is $249/mo for the minimum plan. Travis used to have a price listed but they have now removed it from public pricing page, would need to ask.

I feel in the hosted mobile CI startup space Bitrise is a clear winner, because their workflows are very much optimised for common mobile app build tasks. Though any machine with ssh access and ability to run Jenkins and Fastlane will do in practice.

@@ -0,0 +1,15 @@
## Mobile Playbook: Platform-specific code

#### Prefer to separate `*.ios.js` and `*.android.js` component files over switching on `Platform.*`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: Make sure this section ends up in agreement with our eslint-config-formidable various discussions.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing, although this naming convention is NOT optional and up for discussion. It's imposed by the build chain.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. Then in this case, the configurations/es6-react-native.js should reflect the mandatory conventions differently than the rest of our files.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ 👍


#### Support token invalidation

#### Using social authentication providers (OAuth, OpenID)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a section on how to integrate with on device switch to app auth, w/ react native libs

#### react-native log-{platform}

#### redux-remote-devtools

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reactotron?

## Mobile Playbook: Navigation and routing

#### Use NavigationExperimental

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exnavigator is worth a mention

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True - there's also ex-navigation now, which looks like it might be the new ex-navigator for NavigationExperimental


#### Prepare for store schema migrations/pruning on updates

#### Using GraphQL with Redux vs Relay

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mobx?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have enough experience to speak to MobX. I'd love a paragraph on it if you have time to write one. Feel free to drop a commit into #48

@kenwheeler
Copy link

This structure looks great. A couple things I might add for consideration for the final product:

  • Simple introduction to bridging
    • exposing native functionality via NativeModules
    • bridging controls/views
  • Objective-C / Java general code style
  • Blessed list of helpful modules
  • Recommended project structure

@carloskelly13
Copy link

I can add some content to the deployment page with respect to different certificate types, provisioning and entitlements. Perhaps another section on extensions would be useful, like Siri integration, WatchKit apps, Home/Lock screen widgets and how they're done and configured using App Groups and they have their own provisioning as well.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants