1677832721
تعرف على كيفية إجراء تسلسل لبياناتك في Kotlin و Jetpack Compose. إعداد التسلسل في مشروع Jetpack Compose. كيفية إجراء تسلسل لفئة البيانات. كيفية إلغاء تسلسل فئة البيانات.
التسلسل هو عملية تحويل البيانات الموجودة بتنسيق واحد إلى تنسيق آخر يمكن تخزينه.
إذا سبق لك العمل مع قاعدة بيانات أو جلبت البيانات من خادم ، فيجب أن يكون هذا مألوفًا لك. إذا لم يكن الأمر كذلك ، فقد أتيت إلى المكان الصحيح.
في هذا البرنامج التعليمي ، سوف ننتقل إلى ما يلي:
قد تسأل نفسك ، ما هو الشيء المميز في التسلسل في Jetpack Compose؟ من حيث الجوهر ، لا يوجد فرق كبير مقارنة بمشروع Kotlin Android العادي. الاختلاف الوحيد في الإعداد.
يتوافق كل إصدار من Jetpack Compose مع إصدار Kotiln المتوافق معه. كل إصدار من مكتبة kotlin-serialization متوافق أيضًا مع إصدار معين من Kotlin. لذلك عليك التأكد من أن كل جزء من الأجزاء الثلاثة في هذا الحامل ثلاثي القوائم متوافق مع بعضها البعض.
كيف يمكنك ذلك؟
المورد الأول الذي تريد الرجوع إليه هو Compose to Kotlin Compatibility Map .
يمكنك هنا معرفة أي إصدار من Jetpack Compose يتوافق مع إصدار Kotlin.
المورد الثاني الذي ستحتاجه هو صفحة الإصدارات لمكتبة kotlin-serialization. ستجد هناك إصدار المكتبة المتوافق مع أي إصدار من إصدارات Kotlin.
مشوش؟ 😕
دعنا نوضح هذا بمثال:
توجه إلى ملف build.gradle على مستوى مشروعك ، وداخل كائن buildscript ، في قسم التبعيات ، ضع مسار الفصل لمكتبة kotlin-serialization مع الإصدار الذي تحتاجه.
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-serialization:X.Y.Z"
}
بعد ذلك ، توجه إلى ملف build.gradle للتطبيق الخاص بك وقم بإجراء هذين الأمرين:
plugins {
...
id 'org.jetbrains.kotlin.plugin.serialization'
}
2. في الجزء السفلي من الملف ، داخل قسم التبعيات ، أضف التنفيذ "org.jetbrains.kotlinx: kotlinx-serialization-json: XYZ" :
dependencies {
...
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:X.Y.Z'
}
قم بمزامنة مشروعك وستكون على ما يرام.
لاحظ أننا نستخدم تنسيق json للمكتبة ، ولكن هناك تنسيقات أخرى مدعومة أيضًا:
⚠️ إذا واجهت أي أخطاء ، فتأكد من صحة الإصدارات التي تضعها
من أجل الحصول على شيء يمكننا إجراء التسلسل وإلغاء التسلسل لاحقًا ، نحتاج إلى العمل مع فئات البيانات.
يعد إنشاء فئة بيانات أمرًا بسيطًا. إذا كنت تستخدم Android Studio ، فما عليك سوى النقر بزر الماوس الأيمن داخل وحدة مشروعك واختيار ملف Kotlin الجديد. أدخل اسم الفصل الخاص بك ثم قم بإلحاق الكلمة الأساسية للبيانات قبلها.
من أجل هذه المقالة ، لنفترض أننا نعمل مع واجهة برمجة تطبيقات تعرض قائمة بالمستخدمين. لكل كائن مستخدم مجموعة من السمات التي يمكن أن يمتلكها (على سبيل المثال لا الحصر):
لجعل فئة البيانات قابلة للتسلسل ، كل ما عليك فعله هو إضافة التعليق التوضيحيSerializable أعلى إعلان الفئة.
@Serializable
data class UserModel(
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
أنيق جدا ، أليس كذلك؟
حسنًا ، هناك المزيد.
تتم كتابة المتغير الذي سيحتوي على الاسم الأول للمستخدم على أنه الاسم الأول. هذا يعني أنه في الاستجابة من خادمنا ، يجب أن يعود في حقل بنفس الاسم.
في بعض الأحيان ، في استجابات واجهة برمجة التطبيقات (API) ، لا تتم كتابة المفاتيح في حالة الجمل ، بل في kebab_case. هذا يعني أن مفتاح الاسم الأول ، قد يكون first_name. في هذه الحالة ، سيتعين علينا كتابتها على النحو التالي:
@Serializable
data class UserModel(
val first_name: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
لكن هذا ليس هو العرف الخاص بأسماء الممتلكات في Kotlin.
فماذا يمكننا أن نفعل؟
يمكننا استخدام التعليق التوضيحيSerialName . يتيح لنا ذلك تحديد اسم الحقل من الاستجابة ثم كتابة أي شيء كخاصية له.
@Serializable
data class UserModel(
@SerialName("first_name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
الآن بعد أن تم إعداد فئة البيانات لدينا ، فلنستمتع بثمار عملنا. كلما احتجنا إلى إجراء تسلسل لفئة البيانات الخاصة بنا ، سنستخدم طريقة Json.encodeToString :
val dataAsString: String = Json.encodeToString(user)
عندما نقوم بتشغيل سطر التعليمات البرمجية أعلاه ، سنحصل على فئة البيانات الخاصة بنا في شكل سلسلة.
يعد إلغاء تسلسل بياناتنا أمرًا بسيطًا مثل تسلسلها. سنستخدم طريقة Json.decodeFromString :
val user: UserModel = Json.decodeFromString<UserModel>(dataAsString)
✋ لاحظ أننا حددنا نوع البيانات التي نريد إلغاء التسلسل إليها باستخدام معلمة النوع (<UserModel>).
الصورة بواسطة Immo Wegmann / Unsplash
حان الوقت لبعض الائتمان الإضافي.
لنفترض أنه في فئة البيانات لديك حقل لا تريد إجراء تسلسل له. إذا أخذنا فئة UserModel الخاصة بنا ، فتخيل أننا نريد الحصول على صورة فعلية للمستخدم (صورة نقطية).
@Serializable
data class UserModel(
@SerialName("first-name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long,
var photo: Bitmap?
)
هذا ليس شيئًا سنحصل عليه من استدعاء API الخاص بنا ، فكيف يمكننا استبعاده؟ لأنه إذا لم نفعل ذلك ، فسوف تفشل عملية التسلسل.
هنا لإنقاذنا هو التعليق التوضيحي المؤقت .
@Serializable
data class UserModel(
@SerialName("first-name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long,
@Transient
var photo: Bitmap?
)
سيؤدي هذا إلى استبعاد الحقل المحدد من التسلسل وإلغاء التسلسل.
شكرا لقرائتك! تسلسل سعيد.
المصدر: https://www.freecodecamp.org
#kotlin # jetpack
1677832721
تعرف على كيفية إجراء تسلسل لبياناتك في Kotlin و Jetpack Compose. إعداد التسلسل في مشروع Jetpack Compose. كيفية إجراء تسلسل لفئة البيانات. كيفية إلغاء تسلسل فئة البيانات.
التسلسل هو عملية تحويل البيانات الموجودة بتنسيق واحد إلى تنسيق آخر يمكن تخزينه.
إذا سبق لك العمل مع قاعدة بيانات أو جلبت البيانات من خادم ، فيجب أن يكون هذا مألوفًا لك. إذا لم يكن الأمر كذلك ، فقد أتيت إلى المكان الصحيح.
في هذا البرنامج التعليمي ، سوف ننتقل إلى ما يلي:
قد تسأل نفسك ، ما هو الشيء المميز في التسلسل في Jetpack Compose؟ من حيث الجوهر ، لا يوجد فرق كبير مقارنة بمشروع Kotlin Android العادي. الاختلاف الوحيد في الإعداد.
يتوافق كل إصدار من Jetpack Compose مع إصدار Kotiln المتوافق معه. كل إصدار من مكتبة kotlin-serialization متوافق أيضًا مع إصدار معين من Kotlin. لذلك عليك التأكد من أن كل جزء من الأجزاء الثلاثة في هذا الحامل ثلاثي القوائم متوافق مع بعضها البعض.
كيف يمكنك ذلك؟
المورد الأول الذي تريد الرجوع إليه هو Compose to Kotlin Compatibility Map .
يمكنك هنا معرفة أي إصدار من Jetpack Compose يتوافق مع إصدار Kotlin.
المورد الثاني الذي ستحتاجه هو صفحة الإصدارات لمكتبة kotlin-serialization. ستجد هناك إصدار المكتبة المتوافق مع أي إصدار من إصدارات Kotlin.
مشوش؟ 😕
دعنا نوضح هذا بمثال:
توجه إلى ملف build.gradle على مستوى مشروعك ، وداخل كائن buildscript ، في قسم التبعيات ، ضع مسار الفصل لمكتبة kotlin-serialization مع الإصدار الذي تحتاجه.
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-serialization:X.Y.Z"
}
بعد ذلك ، توجه إلى ملف build.gradle للتطبيق الخاص بك وقم بإجراء هذين الأمرين:
plugins {
...
id 'org.jetbrains.kotlin.plugin.serialization'
}
2. في الجزء السفلي من الملف ، داخل قسم التبعيات ، أضف التنفيذ "org.jetbrains.kotlinx: kotlinx-serialization-json: XYZ" :
dependencies {
...
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:X.Y.Z'
}
قم بمزامنة مشروعك وستكون على ما يرام.
لاحظ أننا نستخدم تنسيق json للمكتبة ، ولكن هناك تنسيقات أخرى مدعومة أيضًا:
⚠️ إذا واجهت أي أخطاء ، فتأكد من صحة الإصدارات التي تضعها
من أجل الحصول على شيء يمكننا إجراء التسلسل وإلغاء التسلسل لاحقًا ، نحتاج إلى العمل مع فئات البيانات.
يعد إنشاء فئة بيانات أمرًا بسيطًا. إذا كنت تستخدم Android Studio ، فما عليك سوى النقر بزر الماوس الأيمن داخل وحدة مشروعك واختيار ملف Kotlin الجديد. أدخل اسم الفصل الخاص بك ثم قم بإلحاق الكلمة الأساسية للبيانات قبلها.
من أجل هذه المقالة ، لنفترض أننا نعمل مع واجهة برمجة تطبيقات تعرض قائمة بالمستخدمين. لكل كائن مستخدم مجموعة من السمات التي يمكن أن يمتلكها (على سبيل المثال لا الحصر):
لجعل فئة البيانات قابلة للتسلسل ، كل ما عليك فعله هو إضافة التعليق التوضيحيSerializable أعلى إعلان الفئة.
@Serializable
data class UserModel(
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
أنيق جدا ، أليس كذلك؟
حسنًا ، هناك المزيد.
تتم كتابة المتغير الذي سيحتوي على الاسم الأول للمستخدم على أنه الاسم الأول. هذا يعني أنه في الاستجابة من خادمنا ، يجب أن يعود في حقل بنفس الاسم.
في بعض الأحيان ، في استجابات واجهة برمجة التطبيقات (API) ، لا تتم كتابة المفاتيح في حالة الجمل ، بل في kebab_case. هذا يعني أن مفتاح الاسم الأول ، قد يكون first_name. في هذه الحالة ، سيتعين علينا كتابتها على النحو التالي:
@Serializable
data class UserModel(
val first_name: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
لكن هذا ليس هو العرف الخاص بأسماء الممتلكات في Kotlin.
فماذا يمكننا أن نفعل؟
يمكننا استخدام التعليق التوضيحيSerialName . يتيح لنا ذلك تحديد اسم الحقل من الاستجابة ثم كتابة أي شيء كخاصية له.
@Serializable
data class UserModel(
@SerialName("first_name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long
)
الآن بعد أن تم إعداد فئة البيانات لدينا ، فلنستمتع بثمار عملنا. كلما احتجنا إلى إجراء تسلسل لفئة البيانات الخاصة بنا ، سنستخدم طريقة Json.encodeToString :
val dataAsString: String = Json.encodeToString(user)
عندما نقوم بتشغيل سطر التعليمات البرمجية أعلاه ، سنحصل على فئة البيانات الخاصة بنا في شكل سلسلة.
يعد إلغاء تسلسل بياناتنا أمرًا بسيطًا مثل تسلسلها. سنستخدم طريقة Json.decodeFromString :
val user: UserModel = Json.decodeFromString<UserModel>(dataAsString)
✋ لاحظ أننا حددنا نوع البيانات التي نريد إلغاء التسلسل إليها باستخدام معلمة النوع (<UserModel>).
الصورة بواسطة Immo Wegmann / Unsplash
حان الوقت لبعض الائتمان الإضافي.
لنفترض أنه في فئة البيانات لديك حقل لا تريد إجراء تسلسل له. إذا أخذنا فئة UserModel الخاصة بنا ، فتخيل أننا نريد الحصول على صورة فعلية للمستخدم (صورة نقطية).
@Serializable
data class UserModel(
@SerialName("first-name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long,
var photo: Bitmap?
)
هذا ليس شيئًا سنحصل عليه من استدعاء API الخاص بنا ، فكيف يمكننا استبعاده؟ لأنه إذا لم نفعل ذلك ، فسوف تفشل عملية التسلسل.
هنا لإنقاذنا هو التعليق التوضيحي المؤقت .
@Serializable
data class UserModel(
@SerialName("first-name")
val firstName: String,
val lastName: String,
val age: Int,
val birthdate: Date,
val id: Long,
@Transient
var photo: Bitmap?
)
سيؤدي هذا إلى استبعاد الحقل المحدد من التسلسل وإلغاء التسلسل.
شكرا لقرائتك! تسلسل سعيد.
المصدر: https://www.freecodecamp.org
#kotlin # jetpack
1621508255
We are a prime Kotlin app developer in India. We build and provide the best personalized Android apps, migration services, ongoing maintenance, and management.
We have the most efficient Kotlin developers that build ultramodern, interactive, and secure mobile apps. The technologies we use to create the most advanced Kotlin apps are AR/VR, AI/ML, IoT, etc.
Hire Kotlin app developers in India. Meet us, and we will help you meet all of your technology requirements.
#kotlin app development company india #hire kotlin developers india #kotlin app development company #hire kotlin developers #kotlin development agency #kotlin app programmers
1593253920
He used Flutter (which is an amazing tool btw for building cross platform apps) — with just one day of work, 1500 lines of code. That’s beyond impressive (specially the fact that Flutter can be hosted on CodePen as well).
So with similar constraints, I wanted to try out Jetpack Compose. I followed the CodePen example (as closely as I could) and this is the result:
Complete source code:
There are three screens in this app
Home Screen
Profile Screen
Compose Screen
Before we get to the screens — take a look at app state model, which will be used for navigation and theming. I also added some helpers for navigating to individual screens & for checking theme.
There are two models — both data classes. The Tweet model is annotated with _@Model _as we update this model from our composed functions to update view state. User stays the same, hence it’s not annotated.
#kotlin #android #jetpack-compose #android-app-development #jetpack
1598743860
State Management in Android is a complex concept and to know the reason you have to first understand the architectural design of Android and to learn why it’s the key requirement to manage state. The Marcelo Benites article Managing State in Android defines the best description of the state:
The state is an object that is connected/subscribed to one or more widgets, contains data, and eager to update the widgets from that data. If there’s any change happens in data, it notifies all widgets to whom it’s connected. The values of the state are changed at runtime.
#jetpack-compose #jetpack #state #android #kotlin
1616586592
The most popular language used for Android app development is Kotlin and recently Kotlin also launched its Cross-Platform app development language Kotlin Multiplatform.
So are you looking to launch a mobile using Kotlin as your Programming Language?
Then you are at the right place as WebClues Infotech offers services to Hire a Dedicated Kotlin Developer who can develop an interactive and rich user-experienced mobile app. Also, WebClues has a flexible pricing model that the business can choose according to its most suitable structure.
So what are you waiting for? Hire a dedicated Kotlin developer from a reputed Web & Mobile app development agency that has successfully served more than 600+ clients.
Book Free Interview: https://bit.ly/3dDShFg
#hire dedicated kotlin developer #hire dedicated kotlin developer #hire kotlin developers #hire kotlin developer #hire dedicated kotlin app developer #hire kotlin app developers india