일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JPA스터디
- 프로그래머스
- Kafka
- 스프링
- 기술공부
- 스프링부트
- 플러터 개발
- nestjs공부
- Flutter
- 알고리즘공부
- querydsl
- 스프링공부
- nestjs스터디
- 코테공부
- 자바공부
- DDD
- 스프링부트공부
- JPA
- 스프링 공부
- JPA공부
- nestjs
- JPA예제
- 코테준비
- 카프카
- 자료구조공부
- Axon framework
- 기술면접공부
- JPA 공부
- K8S
- 플러터 공부
- Today
- Total
목록[Mobile] (84)
DevBoi
https://docs.flutter.dev/release/archive?tab=macos Flutter SDK archive All current Flutter SDK releases: stable, beta, and master. docs.flutter.dev 여기서 다운 받고, 진행한다. 진행하고 안드로이드 스튜디오 > Settings > Language > Dart에서 아래와 같이 설정해준다. bin/cache/dard-sdk 가 경로다. 무튼 이러고 적용하면 잘 된다.
요새 앱에서 대세로 많이 쓰고 있는 패턴이다. 메인에서 바텀 네비게이션 바로 이벤트를 주자. 안드로이드 보다 쉽다. 우선 전체코드는 아래와 같다. import 'package:flutter/material.dart'; import 'package:flutter/gestures.dart'; import 'dart:ui'; import 'package:google_fonts/google_fonts.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:smithflutter/WidgetUtil.dart'; import 'package:smithflutter/utils.dart'; import 'Person.dart..
필수적으로 외부 백엔드 서버를 호출해서 데이터를 받아와야한다. 이에 필요한 작업을 해보도록 하자 일단 유틸로 하나 만들것이다. 메소드는 Post,Get,Put,Delete로? 무튼 1. pub get || pubspec에 http추가 flutter pub add http http: ^0.13.5 2. 유틸성 코드 추가 백엔드 서버에 이러한 내용이 있다고 가정하자. @PostMapping("/sample") public String test(){ return "hi sample!"; } 플러터 소스는 아래와 같다. var url = Uri.http('localhost:8080', 'sample'); var response = await http.post(url, body: {'name': 'doodle',..
플러터에서 단말기 내부 디비를 사용할 수있다. 사용해보자 1. pubspec.yaml shared_preferences: ^2.2.0 2. 인스턴스 선언 & 데이터 쓰기 class Scene extends StatelessWidget { late SharedPreferences sp; _loadData() async{ sp = await SharedPreferences.getInstance(); sp.setString("test", "smithtestthisis"); } 3. 데이터 읽기 GestureDetector( onTap: (){ Navigator.pushNamed(context, '/second', arguments: [Person('gd','smith'),Person('gd2','smith2'..
플러터는 소스가 너무 길어진다. 그래서 관리하기도 어렵고 소스를 이해하기도, 유지보수하기도, 그리고...가독성도 떨어진다. 그래서 유틸성으로 개발해서 관리해보자 class WidgetUtil{ Widget getListView(List persons){ return ListView.builder( shrinkWrap: true, itemCount: persons.length, itemBuilder: (BuildContext context,int index){ return Container( height: 50, child: Text(persons[index].id), ); }); } } Container( child: new WidgetUtil().getListView(persons), ) ,Contai..
리스트 뷰의 빌더로 사용한다. itemBuilder로 해야 대량의 데이터를 처리하기에 용이하다고 한다. Container( //Listview child: ListView.builder( shrinkWrap: true, itemCount: persons.length, itemBuilder: (BuildContext context,int index){ return Container( height: 100, child: Text(persons[index].id), ); }) ) 이런식으로 사용하면 아래와 같이 결과가 나타난다. 이런식으로 동적으로 리스트가 그려진다.
앱에 거의 필요한 요소이다. 이전에 포스팅한 내용을 가지고, 해당 사람의 정보를 리스트뷰로 보여주자. Container( //Listview child: ListView( shrinkWrap: true, padding:const EdgeInsets.all(8), children: [ Container( height: 50, color: Colors.amber[600], child:const Center( child:Text('11111') ) ), Container( height: 50, color: Colors.amber[500], child:const Center( child:Text('22222') ) ), Container( height: 50, color: Colors.amber[400], ch..
화면 이동하는 걸 전 포스팅에서 다뤘다. 그러면 이동간 데이터 전달은 어떻게 할까? 우선 해당 위젯에 대한 생성자에 파라미터를 추가해주고 넘기면 된다. 1. push , pop의 경우 값을 넘겨주기 단순 값. 전송부 Navigator.of(context).push( MaterialPageRoute( builder: (BuildContext context) => Scene2(), settings: RouteSettings(arguments: '전송한 데이터'), ), ); 단순 값 수신부 @override Widget build(BuildContext context) { final arguments = ModalRoute.of(context)!.settings.arguments; print(argument..
GestureDetector로 컴포넌트를 감싼다. 해당 으로 컴포넌트 당 클릭이나 이벤트가 발생할때 동작하는지 보자. 해당으로 하게 되면, 컨테이너를 클릭하면 gd가 프린트 된다. GestureDetector( onTap: (){print('gd');}, child: Container( // autogroupnhff9QD (GhkWyreBLNBRcThyFanhFF) width: double.infinity, height: 60*fem, decoration: BoxDecoration ( color: Color(0xffca3c3c), ), child: Center( child: Text( 'Login', style: SafeGoogleFont ( 'Inter', fontSize: 12*ffem, fontWe..