Advertisement
zoro-10

Flutter (M.P) Practicals

Oct 15th, 2023 (edited)
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 19.99 KB | None | 0 0
  1. //Practical 1
  2.  
  3. //Print Something
  4. void main(){
  5.     print("Hello World");
  6. }
  7.  
  8. //Types of Variables
  9.  
  10. void main() {
  11.   int num1 = 10;
  12.   double num2 = 10.1;
  13.   bool isTrue = true;
  14.   String str = "Hello World";
  15.  
  16.   print(num1);
  17.   print(num2);
  18.   print(isTrue);
  19.   print(str);
  20. }
  21.  
  22.  
  23. //DIfferent types of Operators
  24.  
  25. void main() {
  26.   int a = 7;
  27.   int b = 3;
  28.  
  29.   int c = a + b;
  30.   print(c);
  31.   int d = a - b;
  32.   print(d);
  33.  
  34.   int e = -d;
  35.   print(e);
  36.  
  37.   int f = a * b;
  38.   print(f);
  39.   double g = b / a;
  40.   print(g);
  41.  
  42.   int h = a ~/ b;
  43.   print(h);
  44.  
  45.   int i = b % a;
  46.   print(i);
  47. }
  48.  
  49.  
  50. //Decision making
  51.  
  52. void main() {
  53.   var marks = 72;
  54.   if (marks > 85) {
  55.     print("Excenllent");
  56.   } else if (marks > 75) {
  57.     print("Very Good");
  58.   } else if (marks > 65) {
  59.     print("Good");
  60.   } else {
  61.     print("Average");
  62.   }
  63. }
  64.  
  65.  
  66.  
  67. //Factorial Function
  68.  
  69. void main() {
  70.   print(factorial(4));
  71. }
  72.  
  73. factorial(n) {
  74.   if (n <= 0) {
  75.     return 1;
  76.   }
  77.   return n * factorial(n - 1);
  78. }
  79.  
  80.  
  81. //Prime Code
  82.  
  83. bool isPrime(int n) {
  84.   for (var i = 2; i <= n / i; ++i) {
  85.     if (n % i == 0) {
  86.       return false;
  87.     }
  88.   }
  89.   return true;
  90. }
  91.  
  92. void main() {
  93.   int n = 45;
  94.   print("Entered number: $n");
  95.   if (isPrime(n)) {
  96.     print("The number is Prime");
  97.   } else {
  98.     print("The Number is not Prime.");
  99.   }
  100. }
  101.  
  102.  
  103. //Defining class
  104.  
  105. class Student {
  106.   var name, age, rno;
  107.  
  108.   showInfo() {
  109.     print("Student's name is $name.");
  110.     print("Student's age is $age.");
  111.     print("Student's Roll number is $rno.");
  112.   }
  113. }
  114.  
  115. void main() {
  116.   var std = new Student();
  117.   std.name = "John";
  118.   std.age = 32;
  119.   std.rno = 320;
  120.   std.showInfo();
  121. }
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. //2. Designing the mobile app to implement different widgets.
  132.  
  133.  
  134.  
  135. import 'package:flutter/material.dart';
  136.  
  137. void main() {
  138.   runApp(const MaterialApp(
  139.     debugShowCheckedModeBanner: false,
  140.     home: MyApp(),
  141.   ));
  142. }
  143.  
  144. class MyApp extends StatefulWidget {
  145.   const MyApp({Key? key}) : super(key: key);
  146.   @override
  147.   State<MyApp> createState() => _MyAppState();
  148. }
  149.  
  150. class _MyAppState extends State<MyApp> {
  151.   TextEditingController controller1 = TextEditingController();
  152.   TextEditingController controller2 = TextEditingController();
  153.   int? num1 = 0, num2 = 0, result = 0;
  154.   add() {
  155.     setState(() {
  156.       num1 = int.parse(controller1.text);
  157.       num2 = int.parse(controller2.text);
  158.       result = num1! + num2!;
  159.     });
  160.   }
  161.  
  162.   sub() {
  163.     setState(() {
  164.       num1 = int.parse(controller1.text);
  165.       num2 = int.parse(controller2.text);
  166.       result = num1! - num2!;
  167.     });
  168.   }
  169.  
  170.   mul() {
  171.     setState(() {
  172.       num1 = int.parse(controller1.text);
  173.       num2 = int.parse(controller2.text);
  174.       result = num1! * num2!;
  175.     });
  176.   }
  177.  
  178.   div() {
  179.     setState(() {
  180.       num1 = int.parse(controller1.text);
  181.       num2 = int.parse(controller2.text);
  182.       result = num1! ~/ num2!;
  183.     });
  184.   }
  185.  
  186.   @override
  187.   Widget build(BuildContext context) {
  188.     return Scaffold(
  189.       appBar: AppBar(
  190.         title: const Text('Simple Calculator'),
  191.         backgroundColor: Colors.blue.shade900,
  192.       ),
  193.       body: Column(
  194.         children: [
  195.           const SizedBox(
  196.             height: 15,
  197.           ),
  198.           Text(
  199.             'Result is: $result',
  200.             style: TextStyle(fontSize: 20, color: Colors.blue.shade700),
  201.           ),
  202.           const SizedBox(
  203.             height: 15,
  204.           ),
  205.           TextField(
  206.             controller: controller1,
  207.             decoration: InputDecoration(
  208.                 labelText: "Enter number",
  209.                 border: OutlineInputBorder(
  210.                     borderRadius: BorderRadius.circular(20))),
  211.           ),
  212.           const SizedBox(
  213.             height: 15,
  214.           ),
  215.           TextField(
  216.             controller: controller2,
  217.             decoration: InputDecoration(
  218.                 labelText: "Enter number",
  219.                 border: OutlineInputBorder(
  220.                     borderRadius: BorderRadius.circular(20))),
  221.           ),
  222.           const SizedBox(
  223.             height: 15,
  224.           ),
  225.           Row(
  226.             mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  227.             children: [
  228.               ElevatedButton(
  229.                   onPressed: () {
  230.                     add();
  231.                     controller1.clear();
  232.                     controller2.clear();
  233.                   },
  234.                   child: const Text('ADD')),
  235.               ElevatedButton(
  236.                   onPressed: () {
  237.                     sub();
  238.                   },
  239.                   child: const Text('SUB'))
  240.             ],
  241.           ),
  242.           Row(
  243.             mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  244.             children: [
  245.               ElevatedButton(
  246.                   onPressed: () {
  247.                     mul();
  248.                   },
  249.                   child: const Text('MUL')),
  250.               ElevatedButton(
  251.                   onPressed: () {
  252.                     div();
  253.                   },
  254.                   child: const Text('DIV')),
  255.             ],
  256.           )
  257.         ],
  258.       ),
  259.     );
  260.   }
  261. }
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272. //3. Designing the mobile app to implement different Layouts.
  273.  
  274. import 'package:flutter/material.dart';
  275.  
  276. void main() {
  277.   runApp(const DemoApp());
  278. }
  279.  
  280. class DemoApp extends StatelessWidget {
  281.   const DemoApp({Key? key}) : super(key: key);
  282.  
  283.   @override
  284.   Widget build(BuildContext context) {
  285.     return MaterialApp(
  286.         title: 'My Application',
  287.         debugShowCheckedModeBanner: true,
  288.         home: Scaffold(
  289.             body: Padding(
  290.                 padding: const EdgeInsets.all(20.0),
  291.                 child: Column(
  292.                   mainAxisAlignment: MainAxisAlignment.center,
  293.                   children: [
  294.                     Row(
  295.                       mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  296.                       children: [
  297.                         Container(
  298.                           height: 100,
  299.                           width: 100,
  300.                           color: Colors.teal,
  301.                         ),
  302.                         Container(
  303.                             height: 100, width: 100, color: Colors.teal[600]),
  304.                         Container(
  305.                             height: 100, width: 100, color: Colors.teal[900]),
  306.                       ],
  307.                     ),
  308.                     Row(
  309.                       mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  310.                       children: [
  311.                         Container(
  312.                           height: 100,
  313.                           width: 100,
  314.                           color: Colors.amberAccent,
  315.                         ),
  316.                         Container(
  317.                             height: 100,
  318.                             width: 100,
  319.                             color: Colors.amberAccent[100]),
  320.                         Container(
  321.                             height: 100,
  322.                             width: 100,
  323.                             color: Colors.amberAccent[200]),
  324.                       ],
  325.                     )
  326.                   ],
  327.                 ))));
  328.   }
  329. }
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340. //4. Designing the mobile app to implement the routing.
  341. import 'package:flutter/material.dart';
  342. void main() {
  343.   runApp(const MaterialApp(
  344.     home:MyApp(),
  345.   )); //MaterialApp
  346. }
  347. class MyApp extends StatelessWidget {
  348.   const MyApp({Key? key}) : super(key: key);
  349.   @override
  350.   Widget build(BuildContext context) {
  351.     TextEditingController name = TextEditingController();
  352.     TextEditingController id = TextEditingController();
  353.     TextEditingController semester = TextEditingController();
  354.     TextEditingController dept = TextEditingController();
  355.     TextEditingController city = TextEditingController();
  356.     return Scaffold(
  357.       appBar: AppBar(
  358.         title: const Text("User Info"),
  359.         centerTitle: true,
  360.       ), // AppBar
  361.       body: Column(
  362.         children: [
  363.           const SizedBox(height: 10),
  364.           TextField(
  365.             controller: name,
  366.             decoration: InputDecoration(
  367.                 labelText: " Enter your name",
  368.                 border: OutlineInputBorder(
  369.                     borderRadius: BorderRadius.circular(15)
  370.                 ) // OutlineInputBorder
  371.             ), //Input Decoration
  372.           ), // TextField
  373.           const SizedBox(height: 10),
  374.           TextField(
  375.             controller: id,
  376.             decoration: InputDecoration(
  377.                 labelText: " Enter your ID",
  378.                 border: OutlineInputBorder(
  379.                     borderRadius: BorderRadius.circular(15)
  380.                 ) // OutlineInputBorder
  381.             ), //Input Decoration
  382.           ), // TextField
  383.           const SizedBox(height: 10),
  384.           TextField(
  385.             controller: semester,
  386.             decoration: InputDecoration(
  387.                 labelText: " Enter your Semester",
  388.                 border: OutlineInputBorder(
  389.                     borderRadius: BorderRadius.circular(15)
  390.                 ) // OutlineInputBorder
  391.             ), //Input Decoration
  392.           ), // TextField
  393.           const SizedBox(height: 10),
  394.           TextField(
  395.             controller: dept,
  396.             decoration: InputDecoration(
  397.                 labelText: " Enter your Department",
  398.                 border: OutlineInputBorder(
  399.                     borderRadius: BorderRadius.circular(15)
  400.                 ) // OutlineInputBorder
  401.             ), //Input Decoration
  402.           ), // TextField
  403.           const SizedBox(height: 10),
  404.           TextField(
  405.             controller: city,
  406.             decoration: InputDecoration(
  407.                 labelText: " Enter your City",
  408.                 border: OutlineInputBorder(
  409.                     borderRadius: BorderRadius.circular(15)
  410.                 ) // OutlineInputBorder
  411.             ), //Input Decoration
  412.           ), // TextField
  413.           const SizedBox(height: 10,),
  414.           ElevatedButton(onPressed: () {
  415.             Navigator.push(context, MaterialPageRoute(builder: (context)=>NextScreen(
  416.               name: name.text,
  417.               id: id.text,
  418.               semester: semester.text,
  419.               dept: dept.text,
  420.               city: city.text,
  421.             ))).whenComplete(() => { //NextScreen, MaterialPageRoute
  422.               name.clear(),
  423.               id.clear(),
  424.               semester.clear(),
  425.               dept.clear(),
  426.               city.clear()
  427.             });
  428.           }, child: const Text("continue")) //ElevatedButton
  429.         ],
  430.       ), //Column
  431.     ); // Scaffold
  432.   }
  433. }
  434. class NextScreen extends StatelessWidget {
  435.   final String? name, id, semester, dept, city;
  436.   const NextScreen({super.key,
  437.     this.name, this.id, this.semester, this.dept, this.city
  438.   });
  439.   @override
  440.   Widget build(BuildContext context) {
  441.     return Scaffold(
  442.       body: Column(
  443.         children: [
  444.           Text("Name:$name"),
  445.           Text("Id:$id"),
  446.           Text("Semester:$semester"),
  447.           Text("Department:$name"),
  448.           Text("City:$city"),
  449.         ],
  450.       ), //Column
  451.     ); // Scaffold
  452.   }
  453. }
  454.  
  455.  
  456.  
  457.  
  458.  
  459. //5. Designing the mobile app to implement the state management.
  460.  
  461. import 'package:flutter/material.dart';
  462.  
  463. void main() {
  464.   runApp(const MaterialApp(
  465.     home: HomeScreen(),
  466.   ));
  467. }
  468.  
  469. class HomeScreen extends StatefulWidget {
  470.   const HomeScreen({Key? key}) : super(key: key);
  471.  
  472.   @override
  473.   State<HomeScreen> createState() => _HomeScreenState();
  474. }
  475.  
  476. class _HomeScreenState extends State<HomeScreen> {
  477.   TextEditingController name = TextEditingController();
  478.   TextEditingController id = TextEditingController();
  479.   String genderValue = "";
  480.   bool hobby1 = false;
  481.   bool hobby2 = false;
  482.   bool hobby3 = false;
  483.   String strhobby1 = "";
  484.   String strhobby2 = "";
  485.   String strhobby3 = "";
  486.   final formKey = GlobalKey<FormState>(); // formValidation
  487.   @override
  488.   Widget build(BuildContext context) {
  489.     return Scaffold(
  490.       appBar: AppBar(
  491.         title: const Text("User Info"),
  492.       ),
  493.       body: Form(
  494.         key: formKey,
  495.         child: Column(
  496.           children: [
  497.             const SizedBox(
  498.               height: 10,
  499.             ),
  500.             TextFormField(
  501.               controller: name,
  502.               validator: (value) {
  503.                 if (value!.isEmpty) {
  504.                   return 'Please Enter Your Name';
  505.                 }
  506.                 return null;
  507.               },
  508.               decoration: InputDecoration(
  509.                   labelText: "Enter Your Name",
  510.                   border: OutlineInputBorder(
  511.                       borderRadius:
  512.                           BorderRadius.circular(15)) //OutlineInputBorder
  513.                   ), //InputDecoration
  514.             ), // TextFormField
  515.             const SizedBox(
  516.               height: 10,
  517.             ),
  518.             TextFormField(
  519.               controller: id,
  520.               validator: (value) {
  521.                 if (value!.isEmpty) {
  522.                   return 'Please Enter your ID';
  523.                 }
  524.                 return null;
  525.               },
  526.               decoration: InputDecoration(
  527.                   labelText: "Enter your ID",
  528.                   border: OutlineInputBorder(
  529.                       borderRadius:
  530.                           BorderRadius.circular(15)) //OutLineInputBorder
  531.                   ), //InputDecoration
  532.             ), //TextFormField
  533.             const SizedBox(
  534.               height: 10,
  535.             ),
  536.             RadioListTile(
  537.               value: 'Male',
  538.               groupValue: genderValue,
  539.               onChanged: (val) {
  540.                 setState(() {
  541.                   genderValue = val.toString();
  542.                 });
  543.               },
  544.               title: const Text("Male"),
  545.             ), // RadioListTitle
  546.             RadioListTile(
  547.               value: 'Female',
  548.               groupValue: genderValue,
  549.               onChanged: (val) {
  550.                 setState(() {
  551.                   genderValue = val.toString();
  552.                 });
  553.               },
  554.               title: const Text("Female"),
  555.             ), // RadioListTitle
  556.             CheckboxListTile(
  557.               value: hobby1,
  558.               onChanged: (value) {
  559.                 setState(() {
  560.                   hobby1 = !hobby1;
  561.                   if (hobby1) {
  562.                     strhobby1 = 'Playing';
  563.                   }
  564.                 });
  565.               },
  566.               title: const Text("Playing"),
  567.             ), //checkboxListTile
  568.             CheckboxListTile(
  569.               value: hobby2,
  570.               onChanged: (value) {
  571.                 setState(() {
  572.                   hobby2 = !hobby2;
  573.                   if (hobby2) {
  574.                     strhobby2 = 'Singing';
  575.                   }
  576.                 });
  577.               },
  578.               title: const Text("Singing"),
  579.             ), //checkboxListTile
  580.             CheckboxListTile(
  581.               value: hobby3,
  582.               onChanged: (value) {
  583.                 setState(() {
  584.                   hobby3 = !hobby3;
  585.                   if (hobby3) {
  586.                     strhobby3 = 'Drawing';
  587.                   }
  588.                 });
  589.               },
  590.               title: const Text("Drawing"),
  591.             ), //checkboxListTile
  592.             ElevatedButton(
  593.                 onPressed: () {
  594.                   if (formKey.currentState!.validate()) {
  595.                     if (genderValue != "") {
  596.                       Navigator.push(
  597.                           context,
  598.                           MaterialPageRoute(
  599.                               builder: (context) => NextScreen(
  600.                                     name: name.text,
  601.                                     id: id.text,
  602.                                     gender: genderValue,
  603.                                     hobbies:
  604.                                         '${strhobby1.toString()},${strhobby2.toString()},${strhobby3.toString()}',
  605.                                   ))); // NextScreen //MaterialPageRoute
  606.                     }
  607.                   }
  608.                 },
  609.                 child: const Text("Contiue")) // ElevatedButton
  610.           ],
  611.         ), //Column
  612.       ), //Form
  613.     ); //Scaffold
  614.   }
  615. }
  616.  
  617. class NextScreen extends StatelessWidget {
  618.   final String? name, id, gender, hobbies;
  619.   const NextScreen({this.name, this.id, this.gender, this.hobbies, super.key});
  620.   @override
  621.   Widget build(BuildContext context) {
  622.     return Scaffold(
  623.       body: Column(
  624.         children: [
  625.           Text("Name: $name"),
  626.           Text("Id: $id"),
  627.           Text("Gender: $gender"),
  628.           Text("Hobbies: $hobbies"),
  629.         ],
  630.       ), // Column
  631.     ); //Scaffold
  632.   }
  633. }
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644. //6. Designing the mobile app to implement the theming and styling.
  645.  
  646. import 'package:flutter/material.dart';
  647.  
  648. void main() {
  649.   runApp(const MaterialApp(
  650.     home: MyApp(),
  651.   )); // MaterialApp
  652. }
  653.  
  654. class MyApp extends StatelessWidget {
  655.   const MyApp({Key? key}) : super(key: key);
  656.   @override
  657.   Widget build(BuildContext context) {
  658.     return Scaffold(
  659.         appBar: AppBar(
  660.           title: const Text('Theming and Styling'),
  661.         ), //AppBar
  662.         body: Center(
  663.           child: Column(
  664.             mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  665.             children: [
  666.               Image.network(
  667.                 'copy-any-google-image-link',
  668.                 height: 250,
  669.                 width: 250,
  670.               )
  671.             ],
  672.           ), //Column
  673.         ) // Center
  674.         );
  675.   }
  676. }  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687. //7. Designing the mobile app to implement Gestures.
  688.  
  689. import 'package:flutter/material.dart';
  690.  
  691. void main() {
  692.   runApp(const MaterialApp(home: MyApp()));
  693. }
  694.  
  695. class MyApp extends StatefulWidget {
  696.   const MyApp({Key? key}) : super(key: key);
  697.   @override
  698.   State<MyApp> createState() => _MyAppState();
  699. }
  700.  
  701. class _MyAppState extends State<MyApp> {
  702.   int numberOfTimesTapped = 0;
  703.   @override
  704.   Widget build(BuildContext context) {
  705.     return Scaffold(
  706.       body: Center(
  707.         child: Column(
  708.           mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  709.           children: [
  710.             Text('Tapped ${numberOfTimesTapped}times',
  711.                 style: const TextStyle(fontSize: 30)),
  712.             GestureDetector(
  713.               onTap: () {
  714.                 setState(() {
  715.                   numberOfTimesTapped++;
  716.                 });
  717.               },
  718.               child: Container(
  719.                   padding: const EdgeInsets.all(20),
  720.                   color: Colors.green[200],
  721.                   child: const Text(
  722.                     'TAP HERE',
  723.                     style: TextStyle(fontSize: 30),
  724.                   )),
  725. //Container
  726.             ) //GestureDetector
  727.           ],
  728.         ), // Column
  729.       ), // Center
  730.     ); //Scaffold
  731.   }
  732. }
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743. //8. Designing the mobile app to implement the Animation
  744.  
  745. import 'package:flutter/material.dart';
  746. import 'package:lottie/lottie.dart';
  747.  
  748. void main() {
  749.   runApp(const MaterialApp(
  750.     home: MyApp(),
  751.   )); // MaterialApp
  752. }
  753.  
  754. class MyApp extends StatefulWidget {
  755.   const MyApp({Key? key}) : super(key: key);
  756.   @override
  757.   State<MyApp> createState() => _MyAppState();
  758. }
  759.  
  760. class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
  761. //controller
  762.   late final AnimationController _controller;
  763.   @override
  764.   void initState() {
  765.     super.initState();
  766.     _controller =
  767.         AnimationController(duration: const Duration(seconds: 10), vsync: this);
  768.   }
  769.  
  770.   @override
  771.   void dispose() {
  772.     super.dispose();
  773.     _controller.dispose();
  774.   }
  775.  
  776.   bool bookmark = false;
  777.   @override
  778.   Widget build(BuildContext context) {
  779.     return Scaffold(
  780.       body: Center(
  781.         child: GestureDetector(
  782.             onTap: () {
  783.               if (bookmark == false) {
  784.                 bookmark = true;
  785.                 _controller.forward();
  786.               } else {
  787.                 bookmark = false;
  788.                 _controller.reverse();
  789.               }
  790.             },
  791.             child: Lottie.network(
  792.                 'https://assets9.lottiefiles.com/packages/lf20_3le10jj4.json',
  793.                 controller: _controller)), // GestureDetector
  794.       ), //Center
  795.     ); //Scaffold
  796.   }
  797. }
  798.  
  799.  
  800.  
  801.  
  802.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement