{"id":18233361,"url":"https://github.com/grimmerk/maolife","last_synced_at":"2025-04-03T19:31:04.996Z","repository":{"id":31833831,"uuid":"88419695","full_name":"grimmerk/maolife","owner":"grimmerk","description":"This React Native iOS/Android app lets you record a cat/dog daily respiratory rate to get better long-term medical care (some heart and lung diseases, e.g. cat's HCM),  sharing record permission OK","archived":false,"fork":false,"pushed_at":"2023-01-04T05:14:46.000Z","size":6797,"stargazers_count":4,"open_issues_count":8,"forks_count":5,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-19T15:45:12.941Z","etag":null,"topics":["android","facebook-login","firebase","i18n","ios","native-base","react-navigation","redux","redux-thunk"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grimmerk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-16T14:46:17.000Z","updated_at":"2024-05-19T12:38:22.000Z","dependencies_parsed_at":"2023-01-14T19:52:31.041Z","dependency_job_id":null,"html_url":"https://github.com/grimmerk/maolife","commit_stats":null,"previous_names":["grimmerk/maolife"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grimmerk%2Fmaolife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grimmerk%2Fmaolife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grimmerk%2Fmaolife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grimmerk%2Fmaolife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grimmerk","download_url":"https://codeload.github.com/grimmerk/maolife/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247065161,"owners_count":20877718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","facebook-login","firebase","i18n","ios","native-base","react-navigation","redux","redux-thunk"],"created_at":"2024-11-04T15:04:15.320Z","updated_at":"2025-04-03T19:31:04.589Z","avatar_url":"https://github.com/grimmerk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# maolife\n\nIt has only been developed on Mac. However Windows and Linux should work\n\n## Features, Possible feature backlog, Screenshots \n\nSee the wiki, https://github.com/grimmer0125/maolife/wiki\n\n## app store link\n\nAndroid store (beta): https://play.google.com/store/apps/details?id=com.lifeoverflow.maolife\n\niOS: https://itunes.apple.com/us/app/maolife/id1397714182\n\n## UI components\n\nIt mainly uses https://nativebase.io/.\n\n## Library Version and environment requirement\n\nThe development was setup on 10.12 and has been upgraded to 10.13 with Xcode 9 and latest React version. 10.12 \u0026 10.11 is not tested for the latest code.\n\n- macOS: 10.13.5 (High Sierra)\n- Xcode: 9.4 (Its version may affect the versions about React Native and some native npm library)\n- Android Studio: 3.1\n- Gradle version: 4.1\n- Android Gradle plugin version: 3.0.1\n- React Native: 0.55.4 (from v0.49, a breaking change is, there is no more index.Android.js and index.iOS.js, only index.js)\n- React: 16.3.1 (Its version will affect - native-base and react-navigation)\n- native-base: 2.4.5\n- react-navigation: 2.0.4.\n- react-native-fbsdk: 0.7.0\n- FacebookSDK-iOS (need manually download): 4.33.0\n- FacebookSDK-Android: 4.33.0  \n- Python: 2.7 (Some native npm libraries need Python to build)\n\n### (optional) Create your Firebase project if you are not using this project's Firebase project\n\nref: https://Firebase.google.com/docs/web/setup\n\n1. Create a Firebase project in the [Firebase console](https://console.Firebase.google.com/)\n2. Authentication -\u003e Enable Facebook. Then record **Oauth redirect URI** for the following Facebook setting.\n3. Click Add Firebase to your web app to get its **config information**.\n\n## Setup Firebase config\n\n### Firebase web console config\n\n1. Create a project, then choose Realtime Database.\n2. Enable Facebook \u0026 Email login in Authentication.\n3. Change Database rule as the following    \n    ```\n    {\n        \"rules\": {\n            \".read\": \"auth != null\",\n            \".write\": \"auth != null\",\n            \"users\":{\n              \".indexOn\":[\"KID\"]\n            }   \n        }\n    }\n    ```\n\n### Change the fields of `firebaseConfig.js`:\n\n    ```\n    apiKey: \"\u003cAPI_KEY\u003e\",\n    authDomain: \"\u003cPROJECT_ID\u003e.Firebaseapp.com\",\n    databaseURL: \"https://\u003cDATABASE_NAME\u003e.Firebaseio.com\",\n    storageBucket: \"\u003cBUCKET\u003e.appspot.com\",\n    messagingSenderId: \"\u003cSENDER_ID\u003e\",\n    ```\n\n## iOS\n\n### Installation\n\n**Node 10 can not be used since one of dependent package, grpc will fail to install**\n\n**It seems that firebae 5.0.4 will let Android built app can not start (Objects are not valid as a React child) but \"debug JS remotely\" works**\n\n**It seems that if Android Gradle upgrades to 3.1.3 from 3.0.1 and gradle to 4.4 from 4.1, Android Studio will fail to build. (react-native run-android is OK)**\n\nReference:\nhttps://facebook.github.io/react-native/docs/getting-started.html\n\nSummary Step:\n1. install homebrew from https://brew.sh. (terminal: `type brew` to check if you have)\n2. brew install node (or you can install Node from https://nodejs.org/en/, in your terminal, type `node --version` to check your version, should use Node 8 or newer)\n3. brew install watchman\n4. npm install -g react-native-cli\n5. install Xcode 9 and its command line tools, follow https://facebook.github.io/react-native/docs/getting-started.html#xcode\n6. git clone this project, https://github.com/grimmer0125/Kiteretsu\n7. cd into this project folder, `npm install`\n8. (optional) `node node_modules/native-base/ejectTheme.js` (native-base)\n9. `react-native link` (required by native-base, react-native-vector-icons, react-native-fbsdk, react-native-svg)\n\n### Download Facebook SDK on iOS\n\nref: https://developers.facebook.com/docs/ios/getting-started/#download\n\nDownload Facebook SDK and uncompress it to `~/Documents/FacebookSDK`\n\n### (optional) Config Facebook project on Facebook site and iOS project if you are not using this project's Facebook application settings\n\nFollow this guide: https://developers.facebook.com/docs/react-native/configure-ios\n\nKeypoint:\n1. On https://developers.facebook.com/, after adding **Facebook login** in your Facebook Application, you need to setup OAuth Redirect URI gotten from **Firebase**.\n\n### How to run in on iDevice simulator\n1. in project folder, `npm run ios` or `react-native run-ios`.\n\n### How to run on real iPhone\n\nSteps:\nhttps://facebook.github.io/react-native/docs/running-on-device.html\n\nStart from xcode 7, no need paid developer account to run on real device !! Guide:\nhttp://blog.ionic.io/deploying-to-a-device-without-an-apple-developer-account/\n\n## Android + Mac (will complement later)\n\nKeypoint to setup Facebook:\n1. Follow https://developers.facebook.com/docs/react-native/configure-android-current\n2. Need *a development key hash for the development environment of each person who works on your app (cover in 1.).* Release key is needed, too. (This release key is to authorize to use Facebook, not Android release key)\n3. Enable single sign https://developers.facebook.com/docs/facebook-login/android/#expresslogin\n\n## Register test users or developers/testers on Facebook developer site\n\nOnly the Facebook accounts which are registered on Facebook developer site can login successfully.\n\n### Tips on Android\n\nYou need to launch your Android emulator (Android Virtual Device) first, then `npm run android` to install and run. The default React Native command will not launch Android emulator automatically.\n\nYou can use the following ways to launch emulators\n1. Android Studio\n2. In terminal, type `emulator @YOUR_VIRTUAL_DEIVCE` \u0026 or change the VIRTUAL_DEIVCE name in `npm script (qemu)` then you can type `npm run qemu` in start your emuator..\n\nIt is possible to directly use Android Studio to launch and debug. In this case, you may encounter `Unable to load script from assets 'index.android.bundle'`, the relative discussion: https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows/47035389.\n\n## How to debug\n\nFollow https://facebook.github.io/react-native/docs/debugging.html to have remote JS debugging. You can setup breakpoint on Nuclide or chrome debugger.\n\n## Debug React Widget\n1. Use Nuclide's \"React Native Inspector\".\n2. Use https://github.com/jhen0409/react-native-debugger. (which also includes redux-devtoolsy). p.s. And you can not use it to debug react widget and use http://localhost:8081/debugger-ui to see JavaScript logs at the same time.\n3. Standalone [react-devtools](https://facebook.github.io/react-native/docs/debugging.html#react-developer-tools)\n\n## Debug Redux\n\nhttps://github.com/zalmoxisus/remote-redux-devtools supplies a way to use redux server to get redux'store. It needs\n\n**!! [201806 update] Just use react-native-debugger and it works. The code already set up the according redux store part (same setting as remote-redux-devtools) !!**\n\n**!! [201712 update] remote-redux-devtools-on-debugger is not compatible with the latest React v0.51 and is removed from this project !!**\n\n1. ~~modify your code. follow https://github.com/zalmoxisus/remote-redux-devtools  or  https://github.com/jhen0409/remote-redux-devtools-on-debugger to setup. I tried the latter's `remote-redux-devtools`'s setting and used its local redux server and integrated react debugging for react native.~~\n2. ~~prepare a local redux server (localhost) or a WAN remote server.~~\n3. ~~Then just use browser to see the redux'store (http://localhost:8000) or use specific web page/app to Redux's store.~~\n\n~~You can use `remote-redux-devtools`' guide to prepare your own local server.~~\n\n~~Or follow https://github.com/jhen0409/remote-redux-devtools-on-debugger to cover the above 1~3. It comes with a local redux server and also integrates redux with react debugger page. So just use http://localhost:8081/debugger-ui to see React's log and Redux's store at the same time.~~\n\n## Offline build on Devices\n\n`offline` means you can run this app without any dev servers/environment/Mac.\n\n### iOS\n\n1. Choose maolife-release scheme.\n2. Connect your iPhone to Mac.\n3. Build\n\npossible step: only extra run `npm run ios-offline-jsbundle` before build step if you see `main.jsbundle does not exist` and build fail.\n\n### Android\n\n1. connect your Android device to Mac.\n2. use `npm run android-release` to build\n\npossible step: only extra run `npm run android-offline-jsbundle` before build step if you see `unable to load script from assets 'index.android bundle'` and build fail.\n\n## Deploy\n\niOS:\n1. Choose maolife-release scheme.\n2. Product -\u003e Archive\n\nAndroid\n1. cd android\n2. ./gradlew assembleRelease\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrimmerk%2Fmaolife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrimmerk%2Fmaolife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrimmerk%2Fmaolife/lists"}