What do you need for a GREAT Meteor-React-Native starter repo?

I just updated my Meteor React Native starter Repo at GitHub - jankapunkt/meteor-react-native-starter: The code repo for our workshop (it’s a template-repo so you can clone and just start coding).

It currently contains a minimal setup with Router, some screens and Meteor backend integration + authentication. Please leave a star, if you like what you see :slight_smile:

I’d like to improve the repo in many ways but I would love to hear what the community wants/needs for it to become GREAT.

Some ideas from my end:

  • Tests for backend and app
  • GitHub actions for CI
  • simple CRUD backend or admin panel
  • integrate some UI components library, making it more opinionated but also just even faster to get good results
  • dotenv integration for app
  • deployment scripts for the app
  • what eslse?

Would love to hear some input from you. Also, don’t hesitate to open issues if anything does not work etc.

4 Likes

typescript?
I heard expo now has built-in router (which was react navigation)

1 Like

The builtin router allows file-based navigation, I did not update to it yet but will check it out. Regarding TS - I am total TS noob since I never got the time to dive into it so I can’t really say whether it will be good code or not…

I’m using react native cli with react navigation but I think using expo is a good choice, it’s much better now.
Typescript is good for long run. My code base is little heavy now, it has more than 70K lines of codes (both front-end and back-end) and typescript helps a lot.

So does @meteorrn/core package have a typescript definition?

1 Like

I can see there’s .d.ts file in src folder but it looks very simple.

2 Likes

Anyone here who is interested in improving the types? Or at least review, if I improve it?

I know for sure those types are incomplete/incorrect, and definitely need to be fixed. I can probably help review it if you put up a PR

@pihentagy @schlaegerz please go on and open a PR, I am open to review

@jkuester Any chance we can revive this for Meteor 3.0 ? I am trying unable to get this package and latest react-native + meteor 3.0 to work.

@ssepa001 sure! What’s actually blocking you?

I can’t seem to be able to access the data on React native using this library and meteor 3.0.2. Not sure if this is suppose to work with meteor 3 as it is today ? I know its missing typescript definitions.

It should work with Meteor 3, at least it’s tested from my end with @meteorrn/core@2.8.1. can you provide me a minimal reproduction / code snippet? I’m currently working on a new release of the library anyway.

@jkuester

~/repos/meteor-react-native-starter/backend$ meteor update --release 3.0.2
=> Errors while initializing project:         
                                              
While selecting package versions:
error: Conflict: Constraint webapp@1.7.0 is not satisfied by webapp 2.0.1.
Constraints on package "webapp":
* webapp@~2.0.1 <- top level
* webapp@2.0.0 <- meteor-base 1.5.2
* webapp@2.0.0 <- routepolicy 1.1.2 <- ddp-server 3.0.1 <- ddp 1.4.2 <- accounts-base 3.0.1 <- accounts-password 3.0.1
* webapp@2.0.0 <- routepolicy 1.1.2 <- ddp-server 3.0.1 <- ddp 1.4.2 <- accounts-password 3.0.1
* webapp@2.0.0 <- routepolicy 1.1.2 <- webapp 2.0.1 <- lmieulet:meteor-coverage 3.2.0
* webapp@2.0.1 <- ddp-server 3.0.1 <- ddp 1.4.2 <- accounts-base 3.0.1 <- accounts-password 3.0.1
* webapp@2.0.1 <- ddp-server 3.0.1 <- ddp 1.4.2 <- accounts-password 3.0.1
* webapp@2.0.0 <- autoupdate 2.0.0 <- hot-code-push 1.0.5 <- meteor-base 1.5.2
* webapp@2.0.1 <- mongo 2.0.1
* webapp@1.7.0 <- lmieulet:meteor-coverage 3.2.0

Conflict: Constraint mongo@1.1.5 is not satisfied by mongo 2.0.1.
Constraints on package "mongo":
* mongo@2.0.1 <- top level
* mongo@~2.0.1 <- top level
* mongo@1.1.5 <- hwillson:stub-collections 1.0.9
* mongo@2.0.1 <- accounts-base 3.0.1 <- accounts-password 3.0.1
* mongo@1.10.1 || 1.12.0 || 2.0.0 <- aldeed:collection2 4.0.3

Awesome update! The repo looks like a great starting point. For improvements, consider adding better documentation, mobile optimizations, and some UI components to speed up development. Integrating a state management solution and error handling could be useful too. Maybe a feature request template for issues would help the community contribute more easily. Keep up the great work—I’m sure others will have more ideas as well!

1 Like

Funny how a repo can become out of date so quickly…

The backend built and ran without problem. Trying a meteor update failed as it did for @xet7

The front end is fighting me:

I’m trying to run it up, but having difficulty. My phone told me I have Expo Go SDK 52, and the project was built for SDK 49, so I tried that.
It warned me that the version of react-native is old, and may not work properly
The app appears to need Node >16.10, I went to 18.20.2, but now it says too many files open
Node 19 was happier, except

The following packages should be updated for best compatibility with the installed expo version:
  @react-native-async-storage/async-storage@1.18.2 - expected version: 1.23.1
  @react-native-community/netinfo@9.3.10 - expected version: 11.4.1
  expo-checkbox@2.4.0 - expected version: ~4.0.0
  expo-secure-store@12.3.1 - expected version: ~14.0.0
  expo-splash-screen@0.20.5 - expected version: ~0.29.10
  expo-status-bar@1.6.0 - expected version: ~2.0.0
  react@18.2.0 - expected version: 18.3.1
  react-dom@18.2.0 - expected version: 18.3.1
  react-native@0.72.10 - expected version: 0.76.2
  react-native-gesture-handler@2.12.1 - expected version: ~2.20.2
  react-native-safe-area-context@4.6.3 - expected version: 4.12.0
  react-native-screens@3.22.1 - expected version: ~4.0.0
  react-native-web@0.19.10 - expected version: ~0.19.13
  jest@29.5.0 - expected version: ~29.7.0
  jest-expo@49.0.0 - expected version: ~52.0.1
Your project may not work correctly until you install the expected versions of the packages.

All I get on my iPhone is a white screen. Not sure how to trouble shoot that.
Tried the web version, but got this:

Web Bundling failed 12403ms index.js (555 modules)
Unable to resolve "../Utilities/Platform" from "node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js"

The IOS simulator doesn’t run, I need to update my OS for that.
Will try again in a while.

If you are looking for some working Meteor 3 example, @fredmaiaarantes made this Simple Tasks example:

@xet7 I was looking for the React Native end

I got it all working (after a detour to update my system), and have submitted a PR

This is now up to date with SDK 52

I also added @fredmaiaarantes backend to the project, as it’s Meteor 3.1 and has a UI (the existing backend is headless)

2 Likes