Skip to content

Instantly share code, notes, and snippets.

View De-Morgan's full-sized avatar

Michael Adeyemo De-Morgan

View GitHub Profile
@De-Morgan
De-Morgan / main.dart
Created July 11, 2021 10:06
Implementing dark mode in flutter using riverpod
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() {
runApp(ProviderScope(child: DarkModeExample()));
}
class DarkModeExample extends ConsumerWidget {
// This widget is the root of your application.
@De-Morgan
De-Morgan / main.dart
Created June 19, 2021 08:04
Form validation
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: FormValidationExample(),
));
}
class FormValidationExample extends StatelessWidget with InputValidationMixin {
main() {
Widget _loadLoginPage() => MaterialApp(
home: Scaffold(
body: LoginPage(),
),
);
testWidgets("Find one Image in Login Screen",
(WidgetTester widgetTester) async {
await widgetTester.pumpWidget(_loadLoginPage());
import 'package:email_validator/email_validator.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/navigation"
app:startDestination="@id/postsOverviewFragment">
<fragment
android:id="@+id/postsOverviewFragment"
android:name="posts_overview.PostsOverviewFragment"
android:label="PostsOverviewFragment"
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<fragment
android:id="@+id/myNavHostFragment"
class PostsOverviewFragment : Fragment() {
lateinit var binding: PostsOverviewFragmentBinding
private val postViewModel: PostsOverviewViewModel by lazy{
ViewModelProviders.of(this).get(PostsOverviewViewModel::class.java)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
class PostsOverviewViewModel : ViewModel() {
private val _posts = MutableLiveData<List<Post>>()
val post: LiveData<List<Post>>
get() = _posts
init {
getPosts()
}
class PostListAdapter: RecyclerView.Adapter<PostListAdapter.ViewHolder>(){
var data = listOf<Post>()
set(value) {
field = value
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder.from(parent)
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewModel"
type="posts_overview.PostsOverviewViewModel" />
</data>