Releases: jhipster/generator-jhipster-react-native
v4.0.0
JHipster React Native
Ignite JHipster is changing to JHipster React Native, using JHipster's Blueprint system.
Future npm releases will be done under generator-jhipster-react-native
. You can try this branch out with npm install -g generator-jhipster-react-native
. A demo blog post is coming soon.
Migration to Blueprint
It was always a goal to use JHipster's Blueprint system for the React Native generator. With the upcoming JHipster v7 release, the blueprint feature is much more robust and developer-friendly. Helped by the fact Ignite's latest major release removed the ability to use a custom boilerplate, push came to shove, and here we are. Migrating to a JHipster blueprint brings many improvements.
JHipster Commands
You can now use the same JHipster commands you would normally use, making sure to pass --blueprints react-native
when generating the app. This includes the entity
, jdl
, and even heroku
subgenerators (more on that later).
Full JDL Support
Both app and entity JDL imports work as the same as the main JHipster generator. Set blueprints [react-native]
in your app JDL config to generate an application without needing to pass the --blueprints
flag.
Automated Sample App Updates
Thanks to @avdev4j's great work in the Quarkus blueprint, we now have a Github Action to auto-update the sample app on release. This is deployed as a static site. It is also available on iOS/Android in the Expo Client (requires an Expo account).
Major Release Features
Expo
The generated app now uses Expo instead of bare-bones React Native (differences). Expo comes prepacked with the most commonly-used native libraries, such as camera, photos, maps, push notifications, and many more. Building and deploying to App Stores is easier too, just run expo build
instead of using Xcode and Android Studio.
Expo also enables us to use TypeScript in our applications. Note that the generated app still uses JavaScript but TypeScript is a goal for the next major version.
Tip: If you need to use Native LIbraries not included in Expo, you can run expo eject
which will generate the iOS and Android folders for you, similar to v3 of ignite-jhipster
. You keep many of the benefits of Expo such as OTA Updates.
OTA Updates
You only need to resubmit your app to the app stores when you update the Expo SDK. All other updates can happen over-the-air by replacing the JavaScript bundle. To build the initial app for App Store submission, run expo build
. To update the JavaScript code after that, run expo publish
Web Support (PWA)
Expo comes with React Native Web support, and JHipster React Native has been updated to fully support the web. You can even install the app as a PWA to have similar functionality to an App Store install. See Expo's PWA documentation for more information. PWAs are disabled by default, set offline: true
in webpack.config.js
to enable it.
Heroku Subgenerator for Web
The new web support enables us to add a Heroku subgenerator for deploying the React Native Web build. Try it out by running jhipster heroku
from the root of your JHipster React Native app. Note you will need to configure your apiUrl
in app/config/app-config.js
to a backend deployment.
Custom Form Implementation
The previous Form library (tcomb-form-native) in Ignite JHipster was deprecated for some time. In order to keep forms simple while handling the variety of entity field types in JHipster, there is now a custom Form implementation, with a component for each field type. It's simple to add more custom field types if needed. An added bonus is that all JHipster validation types are now supported.
React Hooks
All React components were rewritten as function components with full support for hooks. No deprecated componentWill*
or componentDid*
methods are used in the generated code.
Commits:
- update typescript to v4.1.5 5429b57
- update mocha to v8.3.0 2845c4f
- add blueprint keywords for jhipster.tech marketplace 35aef53
- add retry to install-detox CI step b60ff08
- fix navigation to entity screen after create/edit a34710b
- CI polishing 3570f13
- add jhipster_version to sample app matrix (uses same script as other tests) 3a33998
- 4.0.0-beta.1 0dbd80b
- replace ignite-jhipster references 0e0e822
- add CORS info, update logos for quality b064518
- validate app name to ensure no spaces or special characters are found 526be77
- update deps, enable dependabot, separate out expo dependencies eb323fc
- move oktaClientId config into app-config, update docs 6c58799
- add jhipster version as matrix option, set scripts to fail on any bad exit code 94f7ddc
- randomize the jhipster family member used on home screen c479ea9
- improve expo command building a41a3f4
- test lowering engines to 12 for more autodeploy options (ie netlify, vercel) 0695a09
- add Okta CLI commands for creating native app 7b322f1
- 4.0.0-beta.0 2a05570
- add brotli support to heroku 7ee8096
- fix generated readme oauth2 docs [ci skip] 3838e10
- remove extra nodejs setup step 6bc29c1
- change indent size to 2, matches generated code 4257b1d
- add husky precommit hook d8c4649
- remove generation of .env file, allow empty commit on sample app 09c2f36
- add sample-app workflow to update sample app on release, polish ci and docs a3a1513
- improve heroku subgenerator f9e0b7e
- update sinon to 9.2.4 c4b7ea6
- docs tiny addition [ci skip] f00f033
- replace import-jdl with jdl (old command works, but is less hip) 026633e
- add notes to utils for fixes related to flakiness 3aee3c1
- update dependencies for generator and app, fix docs link 31785d2
- remove component usage, lint, more e2e test fixes 5156926
- install expo app before tests, add wait for picker util and chat tests 7790c67
- upgrade detox to v18 2cb45bd
- add more tests to app and e2e, fixes for those tests 87a2098
- cleanup test scripts, always use JDL instead of backend since no changes are needed 82b0088
- remove unused/small patch files 266fe21
- websocket fixes b0cfc21
- add support for with-entities flag for generating from backend 95ed389
- fix loading of authType for apps generated via backend path 2232608
- bump jhipster to beta.1 d2624da
- update deps, add workflow_dispatch triggers 6845787
- add notice about generating in a folder with parenthesis - couldn't find a quick fix bd101f1
- add e2e setup script to bundle before tests 9a6a3b0
- always upload app folder 63b439e
- simplify code, pass --no-minify and --no-dev instead of hacking it, add retry config for e2e 0e12f86
- use custom conf instead of prepackaged f5a00d0
- update websockets chat screen to hooks, fix styling 49b0a54
- e2e fixes 806f77c
- load jhipster app/server config rather than assigning it to context manually 7b1409b
- fix e2e artifacts, rename jhipster-react-native repo to generator-jhipster-react-native 001dddd
- add more e2e tests 9c50655
- lint and test fixes 2958133
- add heroku subgenerator 0683ed9
- add auth-info reducer and saga 292b553
- disable service workers like the default expo config and to prevent issues 225c9c9
- run app tests on ubuntu to prevent blocking e2e tests 35ec165
- many changes to fix github actions 6596c4a
- fix tests for oauth2, hide storybook in prod, prettier 58e1db7
- add accountReset action for instant logout (don't wait for account API response) 5eceaaa
- handle skipUserManagement, add name to package.json 4b2af2c
- update oauth docs and add some build/deploy instructions 70ce37c
- packaging and test fixes d6d06a4
- fix generated tests, prettier 054dea9
- documentation improvements and small fixes f52e4b7
- remove unused images from app bcd6d7e
- more cleanup and general fixes 33adf92
- UX improvements 29fac66
- remove 'entity' suffix from entity screens b159d4f
- remove unused files, combine configs into app-config 0d2fb45
- style polishing 7e0ad10
- handle many-to-many relationships, required relations, polish styles 1fe43dd
- handle custom table names - reducers should use entity name instead 9c753e3
- generate relationship fields on edit and detail screens c0e3526
- handle plural issues (jhipster does not singular-ize the entity name) 946cb41
- fix relationship mapping for edit screen f906a28
- don't reprompt for config 6c9c0b0
- add DTO backward compatibility for v6 0a9776c
- load userManagementEntities (via super.loading method), ignore .yo-repository, remove extra comma 59449f3
- fix rebase issues, remove ignite-jhipster related files 44d99f1
- bump actions/setup-node version 4854e3c
- remove double .ejs.ejs extensions f28727d
- remove usage of fieldsNoId 258c547
- lint and prettier 7e5c1ff
- compose the blueprint rather than main generators, fixes importing JDL 9c5daec
- fixes date formatting, revert scrollTo, remove SafeAreaView, update detox conf c34f130
- fix jerky scrolling by patching keyboard-aware-scroll-view, remove blank text elements, styling 338a231
- handle contentType in e2e detox tests, remove excess padding/margins, SafeAreaView 80f11f1
- set keyboardDismissMode, remove ModalScreen usage, catch SplashScreen err 9649262
- add support for validation, and date/boolean/enum to e2e tests 8d0743f
- basic validation fixes fc0f559
- fix issues where prettier prevents patch detection, resulting in double inserts 1488c55
- simplify setupVariables to use jhipster config if possible 95f0c31
- remov...
v3.6.4
Bigger Changes:
- Update all dependencies
- Update Detox to latest major release (v18)
Due to Ignite v4 no longer supporting external boilerplates, the next major version will be a JHipster blueprint.
Commits:
- Bump detox from 18.2.1 to 18.2.2 in /boilerplate 3ffa21d
- Bump eslint-config-prettier from 7.1.0 to 7.2.0 in /boilerplate ccd8084
- Bump eslint-config-prettier from 7.1.0 to 7.2.0 29b49d1
- Bump fs-extra from 9.0.1 to 9.1.0 6c24827
- Bump react-native-vector-icons from 7.1.0 to 8.0.0 in /boilerplate ef4adeb
- Bump enzyme-adapter-react-16 from 1.15.5 to 1.15.6 in /boilerplate 74f69b7
- remove brew update 25276ca
- launch app with launchApp for e2e tests ae12716
- Bump detox from 17.14.6 to 18.2.1 in /boilerplate 9b05124
- update package-lock.json 69153cf
- add workflow dispatch, update passing dependencies 5a3d61d
v3.6.3
Bigger Changes:
- Update all dependencies
- Add note about using
ignite-cli
v3
Due to Ignite v4 no longer supporting external boilerplates, the next major version will be a JHipster blueprint.
Commits:
- Bump eslint-plugin-prettier from 3.2.0 to 3.3.0 in /boilerplate 333004a
- Bump eslint from 7.15.0 to 7.16.0 ec28cb7
- Bump react-native-navigation from 7.5.0 to 7.6.0 in /boilerplate 53c7795
- Bump actions/setup-node from v2.1.2 to v2.1.4 37bb543
- Bump eslint-config-prettier from 7.0.0 to 7.1.0 d017d2a
- Bump detox from 17.14.3 to 17.14.6 in /boilerplate acff3e0
- Bump eslint-config-prettier from 7.0.0 to 7.1.0 in /boilerplate f46307f
- Bump node-notifier from 8.0.0 to 8.0.1 9b1b782
- update readme to note ignite v3 is required f59cba7
- pin ignite v3 0390937
- remove brew workaround c8929de
- Bump dot-prop from 4.2.0 to 4.2.1 9b7758e
- Bump detox from 17.11.1 to 17.14.3 in /boilerplate 121fc77
- Bump eslint-plugin-prettier from 3.1.4 to 3.2.0 in /boilerplate b9921b8
- Bump lint-staged from 10.5.1 to 10.5.3 29fda50
- Bump eslint from 7.13.0 to 7.15.0 dc1db2b
- Bump prettier from 2.1.2 to 2.2.1 in /boilerplate 4a8ffe8
- Bump eslint-config-prettier from 6.15.0 to 7.0.0 21aa038
- Bump buffer from 6.0.1 to 6.0.3 in /boilerplate d3c03e1
- Bump prettier from 2.1.2 to 2.2.1 88e9103
- Bump react-native-navigation from 7.3.0 to 7.5.0 in /boilerplate b72e419
- Bump lint-staged from 10.5.1 to 10.5.3 in /boilerplate 0ee3498
- Bump eslint-config-prettier from 6.15.0 to 7.0.0 in /boilerplate 82e9480
- Bump semver from 7.3.2 to 7.3.4 3f5c190
v3.6.2
Bigger Changes:
- Fix Detox E2E tests
- Remove react-native-navigation's
setLazyComponentRegistrator
which caused occasional Android crashes. - Remove extra ScrollView in account screens
- Add
keyboardShouldPersistTaps
to allKeyboardAwareScrollView
to enable tapping buttons with keyboard open
Commits:
- e2e test fixes, session auth xsrf-token fix, revert lazy nav change b01d0d0
- hardcode the path for now 33b2432
- fix artifact path cbbaae4
- add artifacts config for debugging test failures 556c0d4
- fix back button in detox tests, fix tap on button with keyboard open 8ea23fc
- add spec config to run all e2e tests instead of just launch-screen.spec.js 20e697e
v3.6.1
Bigger Changes:
- Fixes for Xcode 12 building react-native-app-auth (OAuth2 only)
Commits:
- change dependabot package updates to weekly [ci skip] d6e2cb3
- Bump react-native-navigation from 7.2.0 to 7.3.0 in /boilerplate be49954
- Bump react-native-app-auth from 6.0.0 to 6.0.1 in /boilerplate 5eeb9a8
- Bump actions/cache from v2.1.2 to v2.1.3 815d7fa
- Bump jest from 26.6.1 to 26.6.3 50c1e10
- Bump eslint from 7.12.1 to 7.13.0 a96ded2
- Bump detox from 17.11.0 to 17.11.1 in /boilerplate aa8fa46
- Bump detox from 17.10.7 to 17.11.0 in /boilerplate 48d7202
- Bump buffer from 5.7.0 to 6.0.1 in /boilerplate 46ff1b5
- Bump detox from 17.10.6 to 17.10.7 in /boilerplate 72c4ac4
- Bump mocha from 8.2.0 to 8.2.1 in /boilerplate 67aec44
- Bump eslint from 7.12.0 to 7.12.1 63dba17
- Bump eslint-config-prettier from 6.14.0 to 6.15.0 bbc1385
- Bump lint-staged from 10.4.2 to 10.5.1 40896ac
- Bump lint-staged from 10.5.0 to 10.5.1 in /boilerplate eb0cdc5
- Bump detox from 17.10.5 to 17.10.6 in /boilerplate e0a466b
- Bump detox from 17.10.3 to 17.10.5 in /boilerplate 34d6d86
- Bump buffer from 5.6.1 to 5.7.0 in /boilerplate 8b75824
- Bump eslint-config-prettier from 6.14.0 to 6.15.0 in /boilerplate 81ce650
- Bump lint-staged from 10.4.2 to 10.5.0 in /boilerplate 4ee6dc9
- Bump apisauce from 1.1.2 to 2.0.0 in /boilerplate 711dc20
- Bump react-redux from 7.2.1 to 7.2.2 in /boilerplate b2df283
- Bump actions/setup-node from v1 to v2.1.2 0d867a1
- Bump actions/cache from v1 to v2.1.2 a736b3b
- upgrade devDependencies 1ece2d8
- fix logo [ci skip] 57db3ca
- upgrade all dependencies, enable dependabot 555be96
- Bump buffer from 5.6.0 to 5.6.1 in /boilerplate e0a7348
v3.6.0
Bigger Changes:
- Upgrade react-native to v0.63.3
- Upgrade all packages to latest versions
- Set up dependabot to keep app packages up to date
- Change
master
branch tomain
Commits:
- nav improvements 5a44e3a
- fix multidex config c275d9f
- enable android multidex, mock createPersistoid f2bbc84
- fix integration tests, android build, and upgrade detox 08a792a
- update react-native to v0.63.3 and all dependencies a96d37b
- Bump apisauce from 1.1.1 to 1.1.2 in /boilerplate 83e8198
- Bump enzyme-adapter-react-16 from 1.15.2 to 1.15.5 in /boilerplate 7b61e9e
- Bump buffer from 5.5.0 to 5.6.0 in /boilerplate e7d8c19
- Bump @react-native-community/async-storage in /boilerplate 72b6807
- Bump eslint-plugin-prettier from 3.1.3 to 3.1.4 in /boilerplate d2ad3bb
- Bump sockjs-client from 1.3.0 to 1.5.0 in /boilerplate 7d032de
- fix name 4d177db
- enable dependebot on boilerplate packages 67dab70
- fix lint-staged rule, add src to rule 8c745dc
- llint f5062d5
- implement version replacing strategy used in jhipster efdc692
- update master to main 8c2ff9f
- add log of ignite-jhipster version being used to generate the app [ci skip] aac8710
v3.5.5
v3.5.4
v3.5.3
Bigger Changes:
- Remove
Oauth2SsoConfiguration.java
which causes backend build failures - Add alert for OAuth auth-info fetch failure
- Allow E2E test user credentials to be set with env variables
Commits:
v3.5.2
Bigger Changes:
- Fixes duplicate page loading bug, better support for no pagination
Commits: