Initial commit
@@ -0,0 +1,121 @@
|
||||
version.json,1774023044529,c95ddd69aeded8aa5928ad92b14b52c2b60af10f2c5311ce93300d30776abdc9
|
||||
manifest.json,1774023045751,6b350b6fae5f0928f228a1a8fa5541437ae52fcfa589b631dd1aa092a07bf0a2
|
||||
index.html,1774023016919,1e8409d1acfc0069bf2a5dcc53121099a7d16e34bdd60302bf0e269381d2672b
|
||||
flutter.js,1774023016667,c86e9ec2a28b0fa50e6efcc196aec60be02c96a5b0bec888ea7e1c986d1b8c68
|
||||
favicon.png,1774023045751,18f5974cf0a7a778cc393e3cb31725d0a85970c8df2b52688cacce7e4dc99342
|
||||
flutter_service_worker.js,1774023046197,e1f4135191a080af3d1ba569557b5277252b9b9423a6be83c963274d08d39f5f
|
||||
flutter_bootstrap.js,1774023016911,d79bdf362105b8d7bc557a93e5a77cff46db442e5093565e947b09fd3703b448
|
||||
icons/Icon-maskable-192.png,1774023045752,3b3af8b09702ed3f063219466bd9e044dbd2703372b1402f6632920ba9c251de
|
||||
icons/Icon-512.png,1774023045752,7fdb40ad7ef7200d89786b1266b41d441eea7872d4bdccaf8a954429aab62c5f
|
||||
icons/Icon-192.png,1774023045752,2a485edb60e647cf0496f958c90c1ebdb3b9a82dc44260370b9094842fab3906
|
||||
assets/FontManifest.json,1774023044625,aa5f29844b391234a4ed068470a2bfd87d8d692f700a8bbbf633e5e6b299b0a4
|
||||
assets/AssetManifest.bin.json,1774023044625,37bf3a356d8f18ca6f6e9c7c2afcc25156b1d6d0bb8c01714d1964bd04035538
|
||||
assets/AssetManifest.bin,1774023044625,acc1ae97e982a4a78bad626ce04d361a558ba85def9e8001383d36744f8a4345
|
||||
assets/shaders/ink_sparkle.frag,1774023044695,5173811eeecee36d442b414b44ec54993cadd39e44568fb88a24dc7ff3dd1fca
|
||||
assets/packages/cupertino_icons/assets/CupertinoIcons.ttf,1774023045743,10aa1f084fa7612decf021fb5a8aefa4a7d2f427d7a02fa778962dd20b814c29
|
||||
assets/shaders/stretch_effect.frag,1774023044696,5936632aca690916d8c46a627c9bac73438a20ac1a3d10464c93f7fff94eabec
|
||||
assets/fonts/MaterialIcons-Regular.otf,1774023045750,624172cef54cae2e0155abebade4436fa4ed311dcd8b7e3c84124c69292f0e45
|
||||
assets/assets/tarot_data.json,1774023044618,95ff61b27c3c39d3fa3f3c83efc2ac1ae2a89d587dacfe50ab1b238b06b16de6
|
||||
icons/Icon-maskable-512.png,1774023045752,8d3ccbc9307d2a1ede82dddcd23c11d39a00be576296b9358903ee746206cde2
|
||||
canvaskit/skwasm_heavy.js,1774023016654,b6844567b8a37fb14d5662b11016d44581d63cad3a8d81002ccda2df422f6b06
|
||||
canvaskit/wimp.js,1774023016664,155c03184c816768553bdabac007c209b0b080d5e9c3689afc53a55e08337dcc
|
||||
canvaskit/skwasm.js,1774023016664,ca9eea4a35f28735e5db9891a9761e61362eb920e207c9e92b44bf1b219411a4
|
||||
canvaskit/canvaskit.js,1774023016664,fa4d7a33ccb6339247171eab8a5caddecbb0e5a4434ce9053f35363f2b6b189c
|
||||
canvaskit/chromium/canvaskit.js,1774023016660,4d89e6a67e87c4b16ce2aeeeebc2d45679bd496a261052ee18267abad2c48a7e
|
||||
assets/assets/sounds/flip.wav,1774023044618,3814a877bde34f604d9c838d867191ce56e2ef129275f546537cb48c573de03a
|
||||
assets/assets/sounds/shuffle.wav,1774023044618,7c17243928dee690524bd5f6a3875d0e64f131b0e9e0aa54107457d649af01f2
|
||||
assets/NOTICES,1774023044626,23d3f20f8391661f87df02bd041aa83c9992975c47a00a8f4d22759ed81da33c
|
||||
assets/assets/images/card_back_alt2.jpg,1774023044595,8887d3927261069efd9f8a0302ebe72b23f106496700248362a101754af15aa2
|
||||
canvaskit/chromium/canvaskit.js.symbols,1774023016661,fad634f436dacf6f2e95031bb3dfb9ea14ce3b23ef0eb187b08410be0cc0c062
|
||||
canvaskit/canvaskit.js.symbols,1774023016665,30cc5832cc4b317fd5ae4a98032435683a12eec44a1bec4e7521af31c65ac9d5
|
||||
canvaskit/skwasm.js.symbols,1774023016653,23638151571cf2adaf0c1266153adca2ef28efb980ee2c83baa913584c1b87b4
|
||||
canvaskit/wimp.js.symbols,1774023016663,8ec1cc08331ded08213dc331ea5977eb101cb9e835c8db01780c1fb1964bff20
|
||||
assets/assets/images/card_9.jpg,1774023044605,dd38ce59e649aafe866ab4840fa5fb76e7bb33fb1b514f9ab760b483f1ab5e46
|
||||
canvaskit/skwasm_heavy.js.symbols,1774023016654,41ae7151488eb23c8699efea54e5b05c0b7d0f62cf66b9a35afe0b00a4e3538a
|
||||
assets/assets/images/card_59.jpg,1774023044595,a07de58d5c6d6783493be554f1749180b6eb7da6e5577d911033822c8941dcc6
|
||||
assets/assets/images/card_52.jpg,1774023044597,e3123e224012734edcdf28920433be99eda5b2de03cb1379388233609b04fc79
|
||||
assets/assets/images/card_back_alt1.jpg,1774023044605,8f6aa665826f3aa587b4ecc341956e716953f3591d5ad456e7f0e81615f03d95
|
||||
assets/assets/images/card_70.jpg,1774023044608,1c3403d6d6d326d0400a9c1e6e82b424d8e391b3473f95fd9901d19e4f5a562e
|
||||
assets/assets/images/card_71.jpg,1774023044596,c56e5d23b3f3bcf41ac666085a91b0f6bc3c6485e0fcf9e41d22171843215c28
|
||||
assets/assets/images/card_73.jpg,1774023044608,459d1a481325790bb25a9e2be57bfa6c4187b4e325e30c66036dccd4176bce5e
|
||||
assets/assets/images/card_67.jpg,1774023044611,91c66b9594ad07699f225b11b829d49c4bc72e1e37c726a8258009741e97e315
|
||||
assets/assets/images/card_58.jpg,1774023044609,29354ccfade5362659d4c03ea0559fe883df77a892d0f8ac5553d93703d1a47c
|
||||
assets/assets/images/card_56.jpg,1774023044595,2c0cb78d5bf07e9ad41d46bc13ab31dd037dad4e4fc8c91e66c84e829b7a0f90
|
||||
assets/assets/images/card_62.jpg,1774023044593,c2975033f30bd566cd1d88fa60c8b561d5cf147760cb63cc9720cc87054a3e6c
|
||||
assets/assets/images/card_back_alt3.jpg,1774023044615,5e08996a2748cd7f6fccc15d79508a6f4a21243d752b79658c7826f7fd17158e
|
||||
assets/assets/images/card_68.jpg,1774023044618,19b0e2915ea0c96df71a16d643ec981abe46dbcc6487963ab8f60b1e8a805cc8
|
||||
assets/assets/images/card_65.jpg,1774023044617,4d90e67f2ed0fd1e988c75a62cce1882053b61de272ec9d4d61fd4531d5c611c
|
||||
assets/assets/images/card_64.jpg,1774023044610,b8a7693927abb61e37b71505440c84d255a9810481d5608c808dbb305b6e7a8d
|
||||
assets/assets/images/card_51.jpg,1774023044610,f7327b273673184ce1353a6126957b5a3a641f5e3210fadcb3493e92228f8ddd
|
||||
assets/assets/images/card_72.jpg,1774023044597,e7c44b44b5c74f101d63c9ecaff4b7615c4a247f0ed0eb0c9487dc53e7432623
|
||||
assets/assets/images/card_61.jpg,1774023044594,b04017152fa469c6f7d638a3bea7c4c16756a7e38e83589c80c5c9f1c47413e0
|
||||
assets/assets/images/card_69.jpg,1774023044604,48c2dc84dc5b078de5074fc15d5486f84cd91a19c55d13d3d75e445bfe41306b
|
||||
assets/assets/images/card_50.jpg,1774023044595,13be37a6fa6c2d14b5db73c57c4edf813a42a70dfc92878aebefc6bc846745db
|
||||
assets/assets/images/card_53.jpg,1774023044601,1c05a9f7278b0136db2ebebef2aa0985f1c7e55e21d83eaed060c5afcb6a6591
|
||||
assets/assets/images/card_60.jpg,1774023044597,894f6b78e0a08670e72e0cf1488b9eee08600486b9b10f7bc74d5ea2f096fea6
|
||||
assets/assets/images/card_57.jpg,1774023044595,df20a19112d6a1d4813757bc6486735fbb05d9a1c6d7fe7cd86916e4bf12ad63
|
||||
assets/assets/images/card_54.jpg,1774023044595,6a08de9461200b23897ece229d823a7294f831f2f2c1974227451f87eb415741
|
||||
assets/assets/images/card_74.jpg,1774023044597,20d9f17ac90352f5f5fda319e25f737265307252bd47a61f8d5ac66750755a2e
|
||||
assets/assets/images/card_63.jpg,1774023044609,d8e601b59a6d257b11acd5cec9b7b75cb92177c61ea563e33295bbf34f4cc58d
|
||||
assets/assets/images/card_76.jpg,1774023044618,0e4528764515819df81cd61496a14312d1eaf1f8b45a7b9a9ab636de5c42421a
|
||||
assets/assets/images/card_66.jpg,1774023044603,33b5f7dd0c49093985926a0ceeb9be8fdff1d65327cd856882bb6e3e181daf80
|
||||
assets/assets/images/card_75.jpg,1774023044598,e9eb1b7852868fdbb109e5e2f41ac045e91bcbddbdc7b0675f0aa85bbb5bd1ec
|
||||
assets/assets/images/card_77.jpg,1774023044594,9b95ecde8102f19e924e86f6d6df86dee1d1d35338cf15ba3d6bd7c835bcb007
|
||||
assets/assets/images/card_55.jpg,1774023044597,ce30456f2d5b800149877565449ab0cc8d6445ddfd0dc4130d443585a7e3e754
|
||||
assets/assets/images/card_49.jpg,1774023044594,c2a3db940b4bd177f06b3bc184b46fa8978d19f4a8f8eb7cb49c9176f8c030ca
|
||||
assets/assets/images/card_8.jpg,1774023044606,f8114c7cb0b77c9d16ae556796a226fbf7ffba3c6a029619c04131e7c3b41c30
|
||||
assets/assets/images/card_5.jpg,1774023044613,9c1145feb8aa49a6510ae80ad5edb6ff22f5a9b7348c89b755c6f4437f527299
|
||||
assets/assets/images/card_7.jpg,1774023044594,1d793c0257a4e37df6a0ab9b73851e99668e2aa67f69808be44128851b859f85
|
||||
assets/assets/images/card_47.jpg,1774023044593,7c6b88b9a9e9086ccff8160e386df8e1810c0dfd9027badffa441c6989071eeb
|
||||
assets/assets/images/card_6.jpg,1774023044609,0021f889a282ef41ffda3e844a84ad46f02533066c1de22f0ece0df91f13623d
|
||||
assets/assets/images/card_46.jpg,1774023044610,84e086eadd6022b89d66104d5a1cf79c9e42ec6d15d067f4192db8a5c7c28d2f
|
||||
assets/assets/fonts/Metamorphous.ttf,1774023044618,13def149122dabee9dd205da6fe5010d7906556c0611dcb6adecbba279ea7fc4
|
||||
assets/assets/images/card_44.jpg,1774023044617,4c5decf900095d668386a341c58335fa4822c86315463e676bf5ee666aacd704
|
||||
assets/assets/images/card_45.jpg,1774023044595,941fbdd85175032ab9eb2fbf34a73dd2e673fb2a6857c584666a64042213c12a
|
||||
assets/assets/images/card_43.jpg,1774023044617,a7ddc87040e562234e522516f85f515aade6a4659653616324175ea6f44295c4
|
||||
main.dart.js,1774023044524,d586a252969abb98f3b5552519eac3aee4026a64c8ed0159087e95cdd04a9901
|
||||
assets/assets/images/card_41.jpg,1774023044604,9f25c968d8a2c9397b6b8d25075779fc0d5f8d8708204502622eb92253373b29
|
||||
assets/assets/images/card_42.jpg,1774023044595,e90294b094f11ac051aa68097c131e3feefe198d8943170dd8ef99eaf67538eb
|
||||
assets/assets/images/card_48.jpg,1774023044594,32c3b4a05de257bedb149e767b2e3a551a9fd30157fff74b2b102fe6eee25cb8
|
||||
assets/assets/images/card_26.jpg,1774023044612,43a167652fdb5a57669655fb9d5c299739ca57a2b50b6f715736341c843d35db
|
||||
assets/assets/images/card_39.jpg,1774023044605,bd5c617faab2dd091b33a154ff8cbd8680254653ddc8656d460ab4bd49239669
|
||||
assets/assets/images/card_40.jpg,1774023044594,a0ec12c34f04cc882ed4f78329dc9fa0e7cf357f28d6998c1b775f23a608c6c6
|
||||
assets/assets/images/card_16.jpg,1774023044617,ac77751d3ee6b9d369cacf70e0e227db289d4cadc87e9e2e9afbfb7a7e3cfe22
|
||||
assets/assets/images/card_38.jpg,1774023044614,d50ceeeb225287298cf2a4c6837bc840c6cfac5e6c63094348ea0db223cf72ec
|
||||
assets/assets/images/card_36.jpg,1774023044597,e0165c7efa094d3e711b9e83431289e20aa81686a052397188cb4176e4e516d9
|
||||
assets/assets/images/card_28.jpg,1774023044604,9effe7a9250d8825ad9f03ba4670d30487d9b5d62f646421c843589225df4742
|
||||
assets/assets/images/card_29.jpg,1774023044612,de600e0a4517cf4f16e40e927d0f6c2010cca0f24425377281a3d34fdb159fa5
|
||||
assets/assets/images/card_30.jpg,1774023044609,f79001e67f1d40f66a9df1d89da7cb9961ae2609564bc8f83953ec74f56daed5
|
||||
assets/assets/images/card_34.jpg,1774023044609,121a9b659899e68eaa37e7fe1b8bf467b8a00b273048960641a922fbbe752fd5
|
||||
assets/assets/images/card_37.jpg,1774023044609,9e70dacbc2cee9216a78595735e893bfbe1cdd63d590c74f570348027e98d057
|
||||
assets/assets/images/card_25.jpg,1774023044618,3906e9f5286ba05d9ed613672af86ca9d26764b2621f4b3d858b2e770bc4f600
|
||||
assets/assets/images/card_35.jpg,1774023044615,e9bc49453be33b2bac47eb0e7c0cc313af3c0ef37275eff8090ffb96280522d3
|
||||
assets/assets/images/card_33.jpg,1774023044593,c5f1385a8ef777b8d40614c8ea08c322a81707282d3507e9fd084ccec7d98f55
|
||||
assets/assets/images/card_15.jpg,1774023044598,45cb6503bdf556b3114bea0274bba7781155cbf1581a0bb3bc33d64b0b7ef08f
|
||||
assets/assets/images/card_32.jpg,1774023044595,d9ca2310a471e8e48b7e1d4ebc5b617a0cba16fdb6bd2522757b06d3858ed7b2
|
||||
assets/assets/images/card_31.jpg,1774023044604,8619e9adaba1137f2e90aa5aff5b77669c829862b53d796feea3cf64c3f6d635
|
||||
assets/assets/images/card_22.jpg,1774023044611,9849b2a58cf8bc55419e80a67b0e990985d4f1e5f16a8d55009aa3543655ec7e
|
||||
assets/assets/images/card_4.jpg,1774023044593,323ca357f0cd387c7c2423e6bc484256a35fc6215fc4d15b3505420c1332040f
|
||||
assets/assets/images/card_27.jpg,1774023044597,c7f6763af0653d2373e22f1e8a997dc5e016d480a45a8c1b126e10463408742f
|
||||
assets/assets/images/card_2.jpg,1774023044597,66d1827445728fd21d333956abd71acb149baf3c69112434c2a0cdc9022248b2
|
||||
assets/assets/images/card_12.jpg,1774023044602,226eaced305eb46629b13ef7888d5ca0cf5f03f4a05757c601095d0b01eab4c8
|
||||
assets/assets/images/card_3.jpg,1774023044597,0f29e33c721cdefca74f89b9fb9d16d9a4030a296d3bdd34772b2c5781da7e0c
|
||||
assets/assets/images/card_21.jpg,1774023044604,f1385541c314553377920f145b65ed43d030133dbe865c8ebc1f9a3bcb339f6c
|
||||
assets/assets/images/card_20.jpg,1774023044611,f7cff716542cb02eb16274e10333c9d63d1790e409ab193d550edd48ee16d90f
|
||||
assets/assets/images/card_13.jpg,1774023044597,69b4f40adc3018b1cce1749c0d1d1b1d974aa8379e6bc7fd5a5e99f31d5746e5
|
||||
assets/assets/images/card_18.jpg,1774023044610,e97312fc0160c6451e65ed62607fbfb2010a552fa6624a54830a380658f6ab23
|
||||
assets/assets/images/card_19.jpg,1774023044615,9c0db24ff0124285806099fee15ba4f278d8e76955a5453abd930ef00e5bb0c1
|
||||
assets/assets/images/card_17.jpg,1774023044594,5803090f2fdc6bdc214ce5795811ce93a005771796824335151b8ef6832e2061
|
||||
assets/assets/images/card_11.jpg,1774023044597,933217d9f741bc086507235a4525aa95c0eb9568f46f02fefb144880b2834762
|
||||
assets/assets/images/card_23.jpg,1774023044604,f180a8b43de2253afaee2309ebd799d64ea4bf3b2e34ec3940cc655205279e01
|
||||
assets/assets/images/card_14.jpg,1774023044596,ce5de0acbce87e82428ef1f7a64e85309119857f2893bd3b6a4aadae718bd6a7
|
||||
assets/assets/images/card_24.jpg,1774023044598,ef1536a108df0d1bec2e3a36f25528e993736707fefa065d80514e02cce869a6
|
||||
assets/assets/images/card_10.jpg,1774023044604,d029838b525ff60d31209cacb96ecc75d24dcccb6a056e950fc73aff77702ad3
|
||||
assets/assets/images/card_1.jpg,1774023044605,e72fcfc0ad6a9384de6b33d6d6c3e352c1f89a42ced47a0a69dcddd7276ea8c7
|
||||
canvaskit/wimp.wasm,1774023016655,6127f7c1c275836a821d3fccd3a3ce1f5a0af8087517b8c6a36e36454bbb6ffe
|
||||
assets/assets/images/card_0.jpg,1774023044598,0565224a71b3307525d5f03027197bb34ba8b54d8e71208fadb713cb8bc71eba
|
||||
canvaskit/skwasm.wasm,1774023016662,a25a9b5a043100b8c64cc18884376cade9db49aa059f96e921626e5e8f52f880
|
||||
assets/assets/images/card_back.jpg,1774023044611,6dc7943804a944b1553655947ca2c03913559106ac23d527af27ce0e1cc722f0
|
||||
canvaskit/chromium/canvaskit.wasm,1774023016659,8a1823553245e2a17cede5414ed1de154bc7c6fca867354354d75f9335813580
|
||||
canvaskit/skwasm_heavy.wasm,1774023016667,15a3e27603a0d34daa69a4a54b986656ef3ca38921ecaa59fbc7d3d464fa5a7c
|
||||
canvaskit/canvaskit.wasm,1774023016657,33332b13159f4767d4e59659c988a49874324cc99fbac5cba6b4217411284533
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"projects": {
|
||||
"default": "pocket-oracle-1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.build/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.swiftpm/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in
|
||||
# VS Code which you may wish to be included in version control, so this line
|
||||
# is commented out by default.
|
||||
#.vscode/
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
.flutter-plugins-dependencies
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
/coverage/
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
|
||||
# Firebase Secrets (CRITICAL)
|
||||
lib/firebase_options.dart
|
||||
android/app/google-services.json
|
||||
ios/Runner/GoogleService-Info.plist
|
||||
|
||||
# Web Secrets
|
||||
web/index.html
|
||||
|
||||
# Local Environment
|
||||
.env
|
||||
@@ -0,0 +1,45 @@
|
||||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
|
||||
channel: "stable"
|
||||
|
||||
project_type: app
|
||||
|
||||
# Tracks metadata for the flutter migrate command
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: android
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: ios
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: linux
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: macos
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: web
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
- platform: windows
|
||||
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
|
||||
|
||||
# User provided section
|
||||
|
||||
# List of Local paths (relative to this file) that should be
|
||||
# ignored by the migrate tool.
|
||||
#
|
||||
# Files that are not part of the templates will be ignored by default.
|
||||
unmanaged_files:
|
||||
- 'lib/main.dart'
|
||||
- 'ios/Runner.xcodeproj/project.pbxproj'
|
||||
@@ -0,0 +1,21 @@
|
||||
<img width="1638" height="1638" alt="app_icon (Edit)" src="https://github.com/user-attachments/assets/34f61a86-bfde-4233-b53e-38b3e861b31b" />
|
||||
|
||||
# 🌙 Pocket Oracle
|
||||
|
||||
A comprehensive, user-friendly Tarot reading application for Android and iOS.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- **Dynamic Spreads:** Choose from Daily Pull, 3-Card Spread, Horseshoe, and Celtic Cross.
|
||||
- **Mystical UI:** Twinkling animated starfield background and smooth card-flip animations.
|
||||
- **Encyclopedia:** Full library of 78 cards with search and suit-filtering logic.
|
||||
- **Cloud Journal:** Save your readings to Firebase with personal notes.
|
||||
- **Personalization:** Discover your Birth Card and choose custom deck backs.
|
||||
- **Tactile Feedback:** Crisp haptic vibrations and high-quality card sounds.
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Framework:** Flutter
|
||||
- **Database/Auth:** Firebase (Firestore & Anonymous Auth)
|
||||
- **State Management:** StatefulWidget / setState
|
||||
- **Graphics:** Custom Painter & 3D FlipCard
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file configures the analyzer, which statically analyzes Dart code to
|
||||
# check for errors, warnings, and lints.
|
||||
#
|
||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
|
||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
|
||||
# invoked from the command line by running `flutter analyze`.
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
# included above or to enable additional rules. A list of all available lints
|
||||
# and their documentation is published at https://dart.dev/lints.
|
||||
#
|
||||
# Instead of disabling a lint rule for the entire project in the
|
||||
# section below, it can also be suppressed for a single line of code
|
||||
# or a specific dart file by using the `// ignore: name_of_lint` and
|
||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||
# producing the lint.
|
||||
rules:
|
||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
@@ -0,0 +1,14 @@
|
||||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
.cxx/
|
||||
|
||||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/to/reference-keystore
|
||||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
@@ -0,0 +1,47 @@
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
// START: FlutterFire Configuration
|
||||
id("com.google.gms.google-services")
|
||||
// END: FlutterFire Configuration
|
||||
id("kotlin-android")
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.stnebula.tarot.tarot_app"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.stnebula.tarot.tarot_app"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
@@ -0,0 +1,45 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application
|
||||
android:label="Pocket Oracle"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter UI initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter UI. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
</application>
|
||||
<!-- Required to query activities that can process text, see:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||
|
||||
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
</intent>
|
||||
</queries>
|
||||
</manifest>
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.stnebula.tarot.tarot_app
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
|
After Width: | Height: | Size: 544 B |
|
After Width: | Height: | Size: 442 B |
|
After Width: | Height: | Size: 721 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
@@ -0,0 +1,24 @@
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
val newBuildDir: Directory =
|
||||
rootProject.layout.buildDirectory
|
||||
.dir("../../build")
|
||||
.get()
|
||||
rootProject.layout.buildDirectory.value(newBuildDir)
|
||||
|
||||
subprojects {
|
||||
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
|
||||
project.layout.buildDirectory.value(newSubprojectBuildDir)
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
tasks.register<Delete>("clean") {
|
||||
delete(rootProject.layout.buildDirectory)
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
@@ -0,0 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
|
||||
@@ -0,0 +1,29 @@
|
||||
pluginManagement {
|
||||
val flutterSdkPath =
|
||||
run {
|
||||
val properties = java.util.Properties()
|
||||
file("local.properties").inputStream().use { properties.load(it) }
|
||||
val flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
|
||||
flutterSdkPath
|
||||
}
|
||||
|
||||
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||
id("com.android.application") version "8.11.1" apply false
|
||||
// START: FlutterFire Configuration
|
||||
id("com.google.gms.google-services") version("4.3.15") apply false
|
||||
// END: FlutterFire Configuration
|
||||
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
|
||||
}
|
||||
|
||||
include(":app")
|
||||
|
After Width: | Height: | Size: 972 KiB |
|
After Width: | Height: | Size: 984 KiB |
|
After Width: | Height: | Size: 1008 KiB |
|
After Width: | Height: | Size: 972 KiB |
|
After Width: | Height: | Size: 868 KiB |
|
After Width: | Height: | Size: 954 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 789 KiB |
|
After Width: | Height: | Size: 695 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 986 KiB |
|
After Width: | Height: | Size: 1024 KiB |
|
After Width: | Height: | Size: 914 KiB |
|
After Width: | Height: | Size: 997 KiB |
|
After Width: | Height: | Size: 1006 KiB |
|
After Width: | Height: | Size: 901 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 786 KiB |
|
After Width: | Height: | Size: 686 KiB |
|
After Width: | Height: | Size: 961 KiB |
|
After Width: | Height: | Size: 789 KiB |
|
After Width: | Height: | Size: 810 KiB |
|
After Width: | Height: | Size: 1003 KiB |
|
After Width: | Height: | Size: 805 KiB |
|
After Width: | Height: | Size: 933 KiB |
|
After Width: | Height: | Size: 922 KiB |
|
After Width: | Height: | Size: 887 KiB |
|
After Width: | Height: | Size: 846 KiB |
|
After Width: | Height: | Size: 882 KiB |
|
After Width: | Height: | Size: 844 KiB |
|
After Width: | Height: | Size: 896 KiB |
|
After Width: | Height: | Size: 869 KiB |
|
After Width: | Height: | Size: 792 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 879 KiB |
|
After Width: | Height: | Size: 851 KiB |
|
After Width: | Height: | Size: 914 KiB |
|
After Width: | Height: | Size: 868 KiB |
|
After Width: | Height: | Size: 834 KiB |
|
After Width: | Height: | Size: 941 KiB |
|
After Width: | Height: | Size: 749 KiB |
|
After Width: | Height: | Size: 692 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 803 KiB |
|
After Width: | Height: | Size: 944 KiB |
|
After Width: | Height: | Size: 830 KiB |
|
After Width: | Height: | Size: 791 KiB |
|
After Width: | Height: | Size: 708 KiB |
|
After Width: | Height: | Size: 835 KiB |
|
After Width: | Height: | Size: 868 KiB |
|
After Width: | Height: | Size: 913 KiB |
|
After Width: | Height: | Size: 776 KiB |
|
After Width: | Height: | Size: 874 KiB |
|
After Width: | Height: | Size: 771 KiB |
|
After Width: | Height: | Size: 713 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 852 KiB |
|
After Width: | Height: | Size: 832 KiB |
|
After Width: | Height: | Size: 798 KiB |
|
After Width: | Height: | Size: 911 KiB |
|
After Width: | Height: | Size: 830 KiB |
|
After Width: | Height: | Size: 828 KiB |
|
After Width: | Height: | Size: 917 KiB |
|
After Width: | Height: | Size: 779 KiB |
|
After Width: | Height: | Size: 824 KiB |
|
After Width: | Height: | Size: 858 KiB |
|
After Width: | Height: | Size: 1017 KiB |
|
After Width: | Height: | Size: 745 KiB |
|
After Width: | Height: | Size: 750 KiB |
|
After Width: | Height: | Size: 863 KiB |
|
After Width: | Height: | Size: 803 KiB |
|
After Width: | Height: | Size: 929 KiB |
|
After Width: | Height: | Size: 966 KiB |