|
1 |
| -# Fresh Notes App |
| 1 | +> [!CAUTION] |
2 | 2 |
|
3 |
| -## Table of contents |
4 |
| -- [Fresh Notes App](#fresh-notes-app) |
5 |
| - - [Table of contents](#table-of-contents) |
6 |
| - - [About](#about) |
7 |
| - - [Story](#story) |
8 |
| - - [Setup](#setup) |
| 3 | +> This project is outdated and is no longer supported, it was never production-ready and published, we highly recommend to not use it or explore the code in it due to the code quality. |
| 4 | +> It wasn't meant to be published or a high-quality code project from the start due to some reasons. |
| 5 | +> We recommened that you check other related repostiories. |
9 | 6 |
|
10 |
| -## About |
11 |
| -A cross-platform, open-source notes app written in Flutter, Kotlin, Swift, Typescript and Firebase |
12 |
| - |
13 |
| -### Story |
14 |
| -We are all interested in building mobile apps for iOS and Android, so we had to use macOS to write and build native iOS applications using Xcode, when using any operating system I usually take a lot of notes and I needed an notes app and I prefer it to not be a third party so I used Notes app on macOS but after updating to macOS 14.1 the notes app never working and it doesn't matter what I do I always getting crashes |
15 |
| - |
16 |
| -<details> |
17 |
| -<summary>Tap to show/hide screenshot</summary> |
18 |
| -<br> |
19 |
| - |
20 |
| - |
21 |
| - |
22 |
| -</details> |
23 |
| - |
24 |
| -it's known to be limited on AppleOS and it's closed so there is not much I can do, so I create this little app and usually I prefer my repositories to public so I decided to also publish it even though that wasn't my plan |
25 |
| - |
26 |
| -## Setup |
27 |
| -1. Setup Flutter, Android Studio, Xcode on your local machine |
28 |
| -2. Run the script `./scripts/fallbacks.sh` |
29 |
| -3. Install the [Firebase CLI](https://firebase.google.com/docs/cli) |
30 |
| -4. Configure Firebase with your Flutter app using the offical [documentation](https://firebase.google.com/docs/flutter/setup), you are welcome to setup it manually, I prefer to do it manually but to make it faster to setup the app for new anyone I will use the automated CLI |
31 |
| -5. Create Firebase Firestore index |
32 |
| - |
33 |
| - Composite indexes: <br> |
34 |
| - userId: Ascending <br> |
35 |
| - updatedAt: Descending <br> |
36 |
| - __name__ Descending <br> |
37 |
| - |
38 |
| - Instead of defining a composite index manually, try to run all the queries in the app by testing everything to get a links for generating the required index. and you will get a url to open Like: |
39 |
| - [https://console.firebase.google.com/v1/r/project/mynotes-eb717/firestore/indexes?....](https://console.firebase.google.com/v1/r/project/mynotes-eb717/firestore/indexes?create_composite=Cktwcm9qZWN0cy9teW5vdGVzLWViNzE3L2RhdGFiYXNlcy8oZGVmYXVsdCkvY29sbGVjdGlvbkdyb3Vwcy9ub3Rlcy9pbmRleGVzL18QARoKCgZ1c2VySWQQARoNCgl1cGRhdGVkQXQQAhoMCghfX25hbWVfXxAC) |
40 |
| - |
41 |
| -6. Configure App check in firebase for Android and iOS (optional) |
42 |
| -7. Setup App Links for Android and Universal Links for iOS (optional) |
43 |
| -8. Update the `constants.dart` in the scripts folder (optional) |
44 |
| - |
45 |
| -<!-- 1. Firebase: First setup firebase for both android/ios, register the apps and download the configurations and put |
46 |
| -them in the desire place, "google-services.json" for android, ios "GoogleService-Info.plist" |
47 |
| -already ignored in the .gitignore |
48 |
| -
|
49 |
| -1. Permissions |
50 |
| -
|
51 |
| - Android: |
52 |
| - ` |
53 |
| - <uses-feature |
54 |
| - android:name="android.hardware.camera" |
55 |
| - android:required="false" /> |
56 |
| -
|
57 |
| - <uses-permission android:name="android.permission.INTERNET" /> |
58 |
| - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
59 |
| - <uses-permission android:name="android.permission.CAMERA" /> |
60 |
| - <uses-permission |
61 |
| - android:name="android.permission.WRITE_EXTERNAL_STORAGE" |
62 |
| - android:maxSdkVersion="29" /> |
63 |
| - ` |
64 |
| -
|
65 |
| - Ios: |
66 |
| - "<key>NSCameraUsageDescription</key> |
67 |
| - <string>We need access to the photo library so you take a photo</string> |
68 |
| - <key>NSPhotoLibraryUsageDescription</key> |
69 |
| - <string>We need access to the photo library so you pick image</string> |
70 |
| - <key>NSPhotoLibraryAddUsageDescription</key> |
71 |
| - <string>To save images into the library, we need permission from you</string> |
72 |
| - <key>FirebaseAutomaticScreenReportingEnabled</key> |
73 |
| - <false/>" |
74 |
| -
|
75 |
| -2. Localizations in Android and iOS |
76 |
| - iOS in info.plist: |
77 |
| - ` |
78 |
| - <key>CFBundleLocalizations</key> |
79 |
| - <array> |
80 |
| - <string>en</string> |
81 |
| - <string>ar</string> |
82 |
| - </array> |
83 |
| - ` |
84 |
| - Android: |
85 |
| - Create a file called res/xml/locales_config.xml and specify your app's languages, including your app's ultimate fallback locale, which is the locale specified in res/values/strings.xml. |
86 |
| - ` |
87 |
| - <?xml version="1.0" encoding="utf-8"?> |
88 |
| - <locale-config xmlns:android="http://schemas.android.com/apk/res/android"> |
89 |
| - <locale android:name="en"/> |
90 |
| - <locale android:name="ar"/> |
91 |
| - </locale-config> |
92 |
| - ` |
93 |
| - In the manifest, add a line pointing to this new file: |
94 |
| - <manifest> |
95 |
| - ... |
96 |
| - <application |
97 |
| - ... |
98 |
| - android:localeConfig="@xml/locales_config"> |
99 |
| - </application> |
100 |
| - </manifest> |
101 |
| - Specify supported languages in Gradle |
102 |
| - If not already present, specify the same languages using the resourceConfigurations property in your app's module-level build.gradle file: |
103 |
| -
|
104 |
| - ` |
105 |
| - android { |
106 |
| - ... |
107 |
| - defaultConfig { |
108 |
| - resourceConfigurations += ["en", "ar"] |
109 |
| - } |
110 |
| - } |
111 |
| - ` |
112 |
| -
|
113 |
| -
|
114 |
| -4. Create firebase firestore index |
115 |
| -
|
116 |
| -Composite indexes: |
117 |
| -userId: Ascending |
118 |
| -updatedAt: Descending |
119 |
| -__name__ Descending |
120 |
| -
|
121 |
| -Instead of defining a composite index manually, try to run all the queries in the app by testing everything to get a links for generating the required index. and you will get a url to open |
122 |
| -[Like: https://console.firebase.google.com/v1/r/project/mynotes-eb717/firestore/indexes?create_composite=Cktwcm9qZWN0cy9teW5vdGVzLWViNzE3L2RhdGFiYXNlcy8oZGVmYXVsdCkvY29sbGVjdGlvbkdyb3Vwcy9ub3Rlcy9pbmRleGVzL18QARoKCgZ1c2VySWQQARoNCgl1cGRhdGVkQXQQAhoMCghfX25hbWVfXxAC](https://console.firebase.google.com/v1/r/project/mynotes-eb717/firestore/indexes?create_composite=Cktwcm9qZWN0cy9teW5vdGVzLWViNzE3L2RhdGFiYXNlcy8oZGVmYXVsdCkvY29sbGVjdGlvbkdyb3Vwcy9ub3Rlcy9pbmRleGVzL18QARoKCgZ1c2VySWQQARoNCgl1cGRhdGVkQXQQAhoMCghfX25hbWVfXxAC) |
123 |
| -
|
124 |
| -5. Configure App check in firebase for Android and iOS |
125 |
| -
|
126 |
| -6. configure iOS app notification permissions and etc... |
127 |
| -
|
128 |
| -7. Don't forgot to change app name, app icons, notifications icons, branding and applicationId and everything that is releated to this app when republish it again --> |
| 7 | +We might fully rewrite it in the future however it's most likely won't be soon, it will still be supported since some users already installed the pre-alpha version. |
0 commit comments