Flutter/Flutter Tech

    [플러터] 가로 모드 회전 막기

    [플러터] 가로 모드 회전 막기

    가로 모드로의 회전을 막는 방법은 매우 간단하다. 아래의 코드를 main 함수에서 실행하면 된다. SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); 추가로 ios에서는 다음과 같은 작업이 필요하다. UIInterfaceOrientationPortrait info.plist에 위 구문 추가 Runner를 X code로 오픈 후 device orientation의 portrait 옵션 활성화.

    [플러터] application/octet-stream type

    [플러터] application/octet-stream type

    REST API 사용 시 content-type이라는 property가 존재한다. 말 그대로 데이터와 형식과 관련된 부분이다. 일반적으로는 application/json 타입을 사용하여 json의 형태로 데이터를 주고 받지만, API에 따라 다양한 타입이 요구된다. 위는 N-cloud의 Clova Speech Recognition REST API에서 요구되는 헤더이고, 음성 파일을 텍스트로 번역해주는 API로 파일을 전송한다. 이같이 content-type이 octet-stream인 경우 Flutter에서 request하는 코드는 다음과 같다. import 'package:dio/dio.dart'; import 'dart:io'; void requestSTT(String fileURL) async { R..

    [플러터] Http로 Json 파싱하기

    [플러터] Http로 Json 파싱하기

    일반적으로 서버는 Rest API를 이용해 데이터를 Json의 형태로 프론트와 주고 받는다. 또한 정보를 담고있는 간단한 API들도 Json의 형태로 제공되는 경우가 많다. 보통 Json은 아래의 사이트처럼 http로 시작하는 일반적인 웹사이트이지만 텍스트로 정보들만 나열되어 있다. https://api.binance.com/api/v1/ticker/allPrices (암호화폐 거래소 Binanace의 거래목록 리스트 Json) 우리는 이러한 http 주소에서 데이터를 파싱해 dart의 자료구조로 바꿔 앱에서 사용할 수 있다. JSON 파싱 http | Dart Package A composable, multi-platform, Future-based API for HTTP requests. pub.de..

    [플러터] 프로젝트 내 Json 파일 읽기

    [플러터] 프로젝트 내 Json 파일 읽기

    글로벌 서비스를 제공할 때 기본적으로 텍스트들을 번역하게 되는데 이 때 Localizations를 가장 많이 사용한다. 프로젝트 내에 json 파일에 object 형태로 저장된 번역을 불러오는 방식이다. 번역 이외에도 많은 양의 데이터를 프로젝트내에 저장하고 불러와서 사용해야하는 경우가 있다. 플러터에서 기본으로 제공하는 json 입출력으로 간단하게 map, list 변수에 json 데이터를 파싱할 수 있다. 파싱이란? 다른 형식으로 저장된 데이터를 원하는 형식의 데이터로 변환하는 것 프로젝트 내 Json 파싱 assets: - assets/json/ pubspec.yaml의 assets에 경로를 추가하는걸 잊지말자! String jsonString = await rootBundle.loadString(..

    [플러터] Status bar 색상 변경하기

    [플러터] Status bar 색상 변경하기

    앱이 개발되고 디자인이 갖춰지면 스마트폰 최상단에 위치한 상태 바의 색상이 어색해 보일 것이다. 상태 바의 배경 색상과 글자 색상을 간단하게 변경할 수 있다. 코드 bool isDarkMode; SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith( statusBarColor: Colors.white, // Color for Android statusBarIconBrightness: isDarkMode ? Brightness.light : Brightness.dark, statusBarBrightness: isDarkMode ? Platform.isIOS ? Brightness.dark : Brightness.light : Pla..