0% found this document useful (0 votes)
19 views31 pages

Mobile Dev 2

The document describes the development of a Flutter mobile app that collects user input for first name, last name, age, and gender. It starts with basic scaffolding and then builds on it by adding text fields and controllers to collect the input, displaying the input, and changing text colors based on if fields are empty or filled. It ends by adding eligibility status and discount display based on the collected values. The code shows the progression of a Flutter app that gathers and displays user data through multiple iterations.

Uploaded by

Kurama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views31 pages

Mobile Dev 2

The document describes the development of a Flutter mobile app that collects user input for first name, last name, age, and gender. It starts with basic scaffolding and then builds on it by adding text fields and controllers to collect the input, displaying the input, and changing text colors based on if fields are empty or filled. It ends by adding eligibility status and discount display based on the collected values. The code shows the progression of a Flutter app that gathers and displays user data through multiple iterations.

Uploaded by

Kurama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 31

MOBILE DEV 2

MAIN. DART
import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({super.key});

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({super.key,});

@override

State<MyHomePage> createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

@override

Widget build(BuildContext context) {

return Scaffold(
appBar: AppBar(

title: Text('Flutter Demo Homepage'),

),

body: const Center(

child: Text('Hello Jayson Tamayo!')

),

);

Ask first name and last name


import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({Key? key}) : super(key: key);


@override

_MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

TextEditingController firstnameController = TextEditingController();

TextEditingController lastnameController = TextEditingController();

String firstname = '';

String lastname = '';

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: const Text('Flutter Demo Homepage'),

),

body: Column(

children: [

const Text('Enter your first name:'),

TextField(controller: firstnameController),

const Text('Enter your last name: '),

TextField(controller: lastnameController),

Text('Your first name is $firstname'),

Text('Your last name is $lastname'),

ElevatedButton(

onPressed: () {

setState(() {

firstname = firstnameController.text;

lastname = lastnameController.text;

});

},
child: const Text('Process'),

),

],

),

);

Ask first name , last name, age, gender


import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({Key? key}) : super(key: key);

@override

_MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {


TextEditingController firstNameController = TextEditingController();

TextEditingController lastNameController = TextEditingController();

TextEditingController ageController = TextEditingController();

TextEditingController genderController = TextEditingController();

String firstName = '';

String lastName = '';

int age = 0;

String gender = '';

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: const Text('Flutter Demo Homepage'),

),

body: Column(

children: [

const Text('Enter your first name:'),

TextField(controller: firstNameController),

const Text('Enter your last name:'),

TextField(controller: lastNameController),

const Text('Enter your age:'),

TextField(controller: ageController),

const Text('Enter your gender:'),

TextField(controller: genderController),

Text('Your first name is $firstName'),

Text('Your last name is $lastName'),

Text('Your age is $age'),

Text('Your gender is $gender'),

ElevatedButton(

onPressed: () {

setState(() {

firstName = firstNameController.text;

lastName = lastNameController.text;

age = int.tryParse(ageController.text) ?? 0;

gender = genderController.text;
});

},

child: const Text('Process'),

),

],

),

);

Red if empty and green if occupy(first name, last name, age, gender)

import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({Key? key}) : super(key: key);

@override
_MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

TextEditingController firstNameController = TextEditingController();

TextEditingController lastNameController = TextEditingController();

TextEditingController ageController = TextEditingController();

TextEditingController genderController = TextEditingController();

String firstName = '';

String lastName = '';

int age = 0;

String gender = '';

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: const Text('Flutter Demo Homepage'),

),

body: Column(

children: [

const Text('Enter your first name:'),

TextField(controller: firstNameController),

const Text('Enter your last name:'),

TextField(controller: lastNameController),

const Text('Enter your age:'),

TextField(controller: ageController),

const Text('Enter your gender:'),

TextField(controller: genderController),

Text(

'Your first name is $firstName',

style: TextStyle(
color: firstNameController.text.isEmpty ? Colors.red :
Colors.green,

),

),

Text(

'Your last name is $lastName',

style: TextStyle(

color: lastNameController.text.isEmpty ? Colors.red :


Colors.green,

),

),

Text(

'Your age is $age',

style: TextStyle(

color: ageController.text.isEmpty ? Colors.red : Colors.green,

),

),

Text(

'Your gender is $gender',

style: TextStyle(

color: genderController.text.isEmpty ? Colors.red :


Colors.green,

),

),

ElevatedButton(

onPressed: () {

setState(() {

firstName = firstNameController.text;

lastName = lastNameController.text;

age = int.tryParse(ageController.text) ?? 0;

gender = genderController.text;

});

},
child: const Text('Process'),

),

],

),

);

Eligible and discount:

import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({Key? key}) : super(key: key);

@override

_MyHomePageState createState() => _MyHomePageState();

}
class _MyHomePageState extends State<MyHomePage> {

TextEditingController firstNameController = TextEditingController();

TextEditingController lastNameController = TextEditingController();

TextEditingController ageController = TextEditingController();

TextEditingController genderController = TextEditingController();

String firstName = '';

String lastName = '';

int age = 0;

String gender = '';

String eligibilityStatus = '';

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: const Text('Flutter Demo Homepage'),

),

body: Column(

children: [

const Text('Enter your first name:'),

TextField(controller: firstNameController),

const Text('Enter your last name:'),

TextField(controller: lastNameController),

const Text('Enter your age:'),

TextField(controller: ageController),

const Text('Enter your gender:'),

TextField(controller: genderController),

Text(

'Your first name is $firstName',

style: TextStyle(
color: firstNameController.text.isEmpty ? Colors.red :
Colors.green,

),

),

Text(

'Your last name is $lastName',

style: TextStyle(

color: lastNameController.text.isEmpty ? Colors.red :


Colors.green,

),

),

Text(

'Your age is $age',

style: TextStyle(

color: ageController.text.isEmpty ? Colors.red : Colors.green,

),

),

Text(

'Your gender is $gender',

style: TextStyle(

color: genderController.text.isEmpty ? Colors.red :


Colors.green,

),

),

ElevatedButton(

onPressed: () {

setState(() {

firstName = firstNameController.text;

lastName = lastNameController.text;

age = int.tryParse(ageController.text) ?? 0;

gender = genderController.text;

if (age >= 60 && gender.toLowerCase() == 'female') {

eligibilityStatus = 'Eligible';
} else {

eligibilityStatus = 'Not Eligible';

});

},

child: const Text('Process'),

),

Text(

'Eligibility: $eligibilityStatus',

style: TextStyle(

fontWeight: FontWeight.bold,

fontSize: 18,

),

),

],

),

);

Repeat ask if not eligible

import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return const MaterialApp(


title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({Key? key}) : super(key: key);

@override

_MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

TextEditingController firstNameController = TextEditingController();

TextEditingController lastNameController = TextEditingController();

TextEditingController ageController = TextEditingController();

TextEditingController genderController = TextEditingController();

String firstName = '';

String lastName = '';

int age = 0;

String gender = '';

String eligibilityStatus = '';

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: const Text('Flutter Demo Homepage'),

),

body: Column(

children: [
const Text('Enter your first name:'),

TextField(controller: firstNameController),

const Text('Enter your last name:'),

TextField(controller: lastNameController),

const Text('Enter your age:'),

TextField(controller: ageController),

const Text('Enter your gender:'),

TextField(controller: genderController),

Text(

'Your first name is $firstName',

style: TextStyle(

color: firstNameController.text.isEmpty ? Colors.red :


Colors.green,

),

),

Text(

'Your last name is $lastName',

style: TextStyle(

color: lastNameController.text.isEmpty ? Colors.red :


Colors.green,

),

),

Text(

'Your age is $age',

style: TextStyle(

color: ageController.text.isEmpty ? Colors.red : Colors.green,

),

),

Text(

'Your gender is $gender',

style: TextStyle(

color: genderController.text.isEmpty ? Colors.red :


Colors.green,
),

),

ElevatedButton(

onPressed: () {

setState(() {

firstName = firstNameController.text;

lastName = lastNameController.text;

age = int.tryParse(ageController.text) ?? 0;

gender = genderController.text;

while (age < 60 || gender.toLowerCase() != 'female') {

ageController.clear();

genderController.clear();

showDialog(

context: context,

builder: (BuildContext context) {

return AlertDialog(

title: const Text('Ineligible'),

content: const Text('You are not eligible. Please


enter your age and gender again.'),

actions: [

ElevatedButton(

onPressed: () {

Navigator.pop(context);

},

child: const Text('OK'),

),

],

);

},

);

return;

}
eligibilityStatus = 'Eligible';

});

},

child: const Text('Process'),

),

Text(

'Eligibility: $eligibilityStatus',

style: TextStyle(

fontWeight: FontWeight.bold,

fontSize: 18,

),

),

],

),

);

Average:
import 'package:flutter/material.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({super.key});

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),
);

class MyHomePage extends StatefulWidget {

const MyHomePage({

super.key,

});

@override

State<MyHomePage> createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

int count = 0;

TextEditingController myController1 = TextEditingController();

TextEditingController myController2 = TextEditingController();

TextEditingController myController3 = TextEditingController();

double average = 0;

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('Flutter Demo Homepage'),

),

body: Column(

children: [

Text('English grade:'),

TextField(

controller: myController1,

),
Text('Math grade:'),

TextField(

controller: myController2,

),

Text('Filipino grade:'),

TextField(

controller: myController3,

),

Text(

'Your average is $average',

),

Text(

average >= 75 ? 'Passed' : 'Failed',

),

ElevatedButton(

onPressed: () {

setState(() {

average = (int.parse(myController1.text) +

int.parse(myController2.text) +

int.parse(myController3.text)) /

3;

});

},

child: Text('Process'))

],

));

API 1
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({super.key});

@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}

class MyHomePage extends StatefulWidget {


const MyHomePage({
super.key,
});

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {


late Future<Todo> todo;

@override
void initState() {
super.initState();
todo = fetchTodo();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo Homepage'),
),
body: Center(
child: FutureBuilder<Todo>(
future: todo,
builder: (context, snapshot){
if(snapshot.hasData){
return Text(snapshot.data!.title);
}else if(snapshot.hasError){
return Text('${snapshot.error}');
}

return const CircularProgressIndicator();


},
),
));
}
}

Future<Todo> fetchTodo() async {


final response = await
get(Uri.parse('https://jsonplaceholder.typicode.com/todos/1'));

if(response.statusCode == 200){
return Todo.fromJson(jsonDecode(response.body));
}else{
throw Exception('Failed to load todo');
}

class Todo {
final int userId;
final int id;
final String title;
final bool completed;

const Todo({
required this.userId,
required this.id,
required this.title,
required this.completed,
});

factory Todo.fromJson(Map<String, dynamic> json){


return Todo(
userId: json['userId'],
id: json['id'],
title: json['title'],
completed: json['completed'],
);
}
}
API 2
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({super.key});

@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}

class MyHomePage extends StatefulWidget {


const MyHomePage({
super.key,
});

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {


late Future<List<Todo>> todo;

@override
void initState() {
super.initState();
todo = fetchTodo();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo Homepage'),
),
body: Center(
child: FutureBuilder<List<Todo>>(
future: todo,
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index){
return ListTile(
title: Text(snapshot.data![index].title),
);
});
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}

return const CircularProgressIndicator();


},
),
));
}
}

Future<List<Todo>> fetchTodo() async {


final response =
await
get(Uri.parse('https://jsonplaceholder.typicode.com/todos'));

if (response.statusCode == 200) {
return (jsonDecode(response.body) as List)
.map((e) => Todo.fromJson(e))
.toList();
} else {
throw Exception('Failed to load todo');
}
}

class Todo {
final int userId;
final int id;
final String title;
final bool completed;

const Todo({
required this.userId,
required this.id,
required this.title,
required this.completed,
});

factory Todo.fromJson(Map<String, dynamic> json) {


return Todo(
userId: json['userId'],
id: json['id'],
title: json['title'],
completed: json['completed'],
);
}
}
AP3
import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:http/http.dart';

void main() {

runApp(const MyApp());

class MyApp extends StatelessWidget {

const MyApp({super.key});

@override

Widget build(BuildContext context) {

return const MaterialApp(

title: 'Flutter Demo',

home: MyHomePage(),

);

class MyHomePage extends StatefulWidget {

const MyHomePage({

super.key,

});
@override

State<MyHomePage> createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage> {

late Future<List<Todo>> todo;

@override

void initState() {

super.initState();

todo = fetchTodo();

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('Flutter Demo Homepage'),

),

body: Center(

child: FutureBuilder<List<Todo>>(

future: todo,

builder: (context, snapshot) {

if (snapshot.hasData) {

return ListView.builder(

itemCount: snapshot.data!.length,

itemBuilder: (context, index) {

return ListTile(

title: Text(snapshot.data![index].title),

onTap: () {

Navigator.push(context, MaterialPageRoute(builder: (

context) =>

SecondScreen(title: snapshot.data![index].title)));

},

);

});
} else if (snapshot.hasError) {

return Text('${snapshot.error}');

return const CircularProgressIndicator();

},

),

));

Future<List<Todo>> fetchTodo() async {

final response =

await get(Uri.parse('https://jsonplaceholder.typicode.com/todos'));

if (response.statusCode == 200) {

return (jsonDecode(response.body) as List)

.map((e) => Todo.fromJson(e))

.toList();

} else {

throw Exception('Failed to load todo');

class Todo {

final int userId;

final int id;

final String title;

final bool completed;

const Todo({

required this.userId,

required this.id,

required this.title,

required this.completed,

});
factory Todo.fromJson(Map<String, dynamic> json) {

return Todo(

userId: json['userId'],

id: json['id'],

title: json['title'],

completed: json['completed'],

);

class SecondScreen extends StatelessWidget {

final String title;

const SecondScreen({super.key, required this.title});

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('Second Screen'),

),

body: Center(

child: Text(title),

));

AP3 RED IF FALSE AND GREEN IF TRUE


import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({Key? key});

@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}

class MyHomePage extends StatefulWidget {


const MyHomePage({
Key? key,
});

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {


late Future<List<Todo>> todo;

@override
void initState() {
super.initState();
todo = fetchTodo();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Flutter Demo Homepage'),
),
body: Center(
child: FutureBuilder<List<Todo>>(
future: todo,
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
final todo = snapshot.data![index];
return ListTile(
title: Text(
todo.title,
style: TextStyle(
color: todo.completed ? Colors.green :
Colors.red,
),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) =>
SecondScreen(title: todo.title)),
);
},
);
},
);
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}

return const CircularProgressIndicator();


},
),
),
);
}
}

Future<List<Todo>> fetchTodo() async {


final response = await
get(Uri.parse('https://jsonplaceholder.typicode.com/todos'));

if (response.statusCode == 200) {
return (jsonDecode(response.body) as List)
.map((e) => Todo.fromJson(e))
.toList();
} else {
throw Exception('Failed to load todo');
}
}

class Todo {
final int userId;
final int id;
final String title;
final bool completed;

const Todo({
required this.userId,
required this.id,
required this.title,
required this.completed,
});

factory Todo.fromJson(Map<String, dynamic> json) {


return Todo(
userId: json['userId'],
id: json['id'],
title: json['title'],
completed: json['completed'],
);
}
}

class SecondScreen extends StatelessWidget {


final String title;

const SecondScreen({Key? key, required this.title}) : super(key:


key);

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Second Screen'),
),
body: Center(
child: Text(title),
),
);
}
}

You might also like