Skip to content

Commit

Permalink
Major upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
Moktadir authored and Moktadir committed Dec 24, 2024
1 parent 23abf0f commit d86080f
Show file tree
Hide file tree
Showing 211 changed files with 1,519 additions and 2,258 deletions.
8 changes: 8 additions & 0 deletions .gitignore
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
*.log
*.pyc
*.swp
*.env
.env
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/

# IntelliJ related
Expand All @@ -32,6 +36,7 @@ migrate_working_dir/
.pub/
/build/


# Symbolication related
app.*.symbols

Expand All @@ -42,3 +47,6 @@ app.*.map.json
/android/app/debug
/android/app/profile
/android/app/release
/android/key.properties
android/key.properties
android/app/upload-keystore.jks
30 changes: 15 additions & 15 deletions .metadata
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.

version:
revision: "68bfaea224880b488c617afe30ab12091ea8fa4e"
revision: "17025dd88227cd9532c33fa78f5250d548d87e9a"
channel: "stable"

project_type: app
Expand All @@ -13,26 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: android
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: ios
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: linux
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: macos
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: web
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: windows
create_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
base_revision: 68bfaea224880b488c617afe30ab12091ea8fa4e
create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a

# User provided section

Expand Down
40 changes: 24 additions & 16 deletions README.md
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,25 +1,38 @@
**# Flutter GetX Template with GetCLI**

**## GetX, Rest Api, GraphQL Api, FirebaseCLI, Hive,**
**## GetX, Rest Api, GraphQL Api, FirebaseCLI, Hive,**

Flutter Getx template to make starting project fast and easy
.

## **Environment**

- Flutter version 3.27.1
- Dart version 3.6.0
- Java version OpenJDK Runtime Environment (build 21.0.3+-12282718-b509.11)
- Android Studio Ladybug | 2024.2.1 Patch 3
- Platform android-35
- Xcode 16.1
- CocoaPods version 1.16.2
- macOS 15.1
- Windows 11

## **Feature**

- Every packages are up to date
- Rest api requests & error handling with app state
- GraphQL api requests & error handling with app state
- Hive for offline Caching
- Shared preference custom class
- Snackbar,Toasts & in app notifications
- Snackbar,Toasts & in app notifications
- FCM and Push notifications with Flutter Local Notification custom class
- Custom Image Picker with Cropper class
- Web Socket Manager class
- Pusher Service for Realtime chatting
- Theme (light/dark) & store current theme in shared pref
- Localization & store the current locale in shared pref
- Making app more responsive and stop font scaling
This project will take care of all this repeatable things so you can start your project in few steps and you will have all the mentioned points set up and ready to use
- Making app more responsive and stop font scaling
This project will take care of all this repeatable things so you can start your project in few steps and you will have all the mentioned points set up and ready to use


## **Clone and start project**
Expand All @@ -41,7 +54,7 @@ Before discovering folders lets first perform some actions to make the project r
```
cd..
```

- To make your app responsive and look exactly as your (xd,figma..etc) design you need to set artbord size for flutter_ScreenUtil in main.dart
```dart
ScreenUtilInit(
Expand All @@ -53,15 +66,10 @@ Before discovering folders lets first perform some actions to make the project r
```
flutter pub run change_app_package_name:main com.new.package.name
```
- Change app name
```
flutter pub run rename_app:main all="My App Name"
```
- Change app launch icon (replace assets/images/app_icon.png with your app icon) then run this command
```
flutter pub run flutter_launcher_icons:main
```
- Change app name
```
flutter pub run rename_app:main all="My App Name"
```
- Change app splash screen (replace assets/images/splash.png with your app splash logo) then run this command
```
flutter pub run flutter_native_splash:create
Expand Down Expand Up @@ -250,8 +258,8 @@ After setting up all the needed thing now lets talk about folder structure which

## Support

For support, email mirmoktadir@gmail.com
Facebook [Mir Moktadir](https://www.facebook.com/moktadir91/)
For support, email mirmoktadir@gmail.com
Facebook [Mir Moktadir](https://www.facebook.com/moktadir91/)
LinkedIn [Mir Moktadir](https://www.linkedin.com/in/mir-moktadir-bb144290/)
Phone no: +8801701308477 (Whatsapp or Telegram)

1 change: 0 additions & 1 deletion analysis_options.yaml
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ linter:
# `// 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

Expand Down
2 changes: 1 addition & 1 deletion android/.gitignore
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
52 changes: 16 additions & 36 deletions android/app/build.gradle
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,70 +1,50 @@
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

android {
namespace "com.example.getx_standard"
compileSdk flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
namespace = "com.mirmoktadir.getxstandard"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
jvmTarget = JavaVersion.VERSION_1_8
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.getx_standard"
applicationId = "com.mirmoktadir.getxstandard"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 24
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
multiDexEnabled true
}

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.debug
signingConfig = signingConfigs.debug
}
}
}

flutter {
source '../..'
source = "../.."
}

dependencies {
implementation("androidx.multidex:multidex:2.0.1")
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3'
}
10 changes: 10 additions & 0 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class com.google.firebase.** { *; }
-dontwarn io.flutter.embedding.**
-ignorewarnings
Empty file modified android/app/src/debug/AndroidManifest.xml
100755 → 100644
Empty file.
19 changes: 13 additions & 6 deletions android/app/src/main/AndroidManifest.xml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">


<uses-feature android:name="android.hardware.camera" android:required="false"/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>

<application android:name="${applicationName}" android:icon="@mipmap/ic_launcher" android:label="GetX Standard">
<activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:exported="true" android:hardwareAccelerated="true" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:windowSoftInputMode="adjustResize">
<application android:allowBackup="false" android:fullBackupOnly="false" android:enableOnBackInvokedCallback="true" android:requestLegacyExternalStorage="true" android:label="GetxStandard" 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
Expand All @@ -18,14 +20,16 @@
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- This meta Data is for FCM-->
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="notification_channel"/>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="notification_channel"/>


<meta-data android:name="flutterEmbedding" android:value="2"/>
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Ucrop.CropTheme"/>
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility?hl=en and
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. -->
Expand All @@ -34,5 +38,8 @@
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
<intent>
<action android:name="android.support.customtabs.action.CustomTabsService"/>
</intent>
</queries>
</manifest>

This file was deleted.

17 changes: 6 additions & 11 deletions android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@
public final class GeneratedPluginRegistrant {
private static final String TAG = "GeneratedPluginRegistrant";
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
try {
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin());
} catch (Exception e) {
Log.e(TAG, "Error registering plugin cloud_firestore, io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin", e);
}
try {
flutterEngine.getPlugins().add(new dev.fluttercommunity.plus.connectivity.ConnectivityPlugin());
} catch (Exception e) {
Expand All @@ -35,11 +30,6 @@ public static void registerWith(@NonNull FlutterEngine flutterEngine) {
} catch (Exception e) {
Log.e(TAG, "Error registering plugin file_picker, com.mr.flutter.plugin.filepicker.FilePickerPlugin", e);
}
try {
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.auth.FlutterFirebaseAuthPlugin());
} catch (Exception e) {
Log.e(TAG, "Error registering plugin firebase_auth, io.flutter.plugins.firebase.auth.FlutterFirebaseAuthPlugin", e);
}
try {
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin());
} catch (Exception e) {
Expand Down Expand Up @@ -80,6 +70,11 @@ public static void registerWith(@NonNull FlutterEngine flutterEngine) {
} catch (Exception e) {
Log.e(TAG, "Error registering plugin path_provider_android, io.flutter.plugins.pathprovider.PathProviderPlugin", e);
}
try {
flutterEngine.getPlugins().add(new com.pusher.channels_flutter.PusherChannelsFlutterPlugin());
} catch (Exception e) {
Log.e(TAG, "Error registering plugin pusher_channels_flutter, com.pusher.channels_flutter.PusherChannelsFlutterPlugin", e);
}
try {
flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin());
} catch (Exception e) {
Expand All @@ -88,7 +83,7 @@ public static void registerWith(@NonNull FlutterEngine flutterEngine) {
try {
flutterEngine.getPlugins().add(new com.tekartik.sqflite.SqflitePlugin());
} catch (Exception e) {
Log.e(TAG, "Error registering plugin sqflite, com.tekartik.sqflite.SqflitePlugin", e);
Log.e(TAG, "Error registering plugin sqflite_android, com.tekartik.sqflite.SqflitePlugin", e);
}
}
}
Loading

0 comments on commit d86080f

Please sign in to comment.