묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Flutter 중급 1편 - 클린 아키텍처
데이터가 수정되거나 추가될때 리스트를 최신화하는 부분의 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 클린아키텍쳐를 구현중인데요 노트를 수정하는 플로우에서viewModel -> useCase.update -> repository.update -> remoteDatasource.update 의 과정을 거치고 노트리스트 조회의 플로우를 생각해보면viewModel -> useCase.getList -> repository.getList -> remoteDatasource.getLIst 처럼 같은 과정을 거치게 됩니다.updateapi를 성공했다면 리스트화면으로 돌아올때 데이터 최신화를 위해 다시한번 조회하는 의미없는 리소스를 없애고싶습니다. 혹은 화면 A,B에서 같은리스트를 보여주는 상황이라면 update 성공 하고나서 A,B화면에 어떤방식으로 notify를 해줄 수 있을까요? 클린아키텍쳐의 구조를 구현하기 전에는 SingleTon으로 구현된 Repository에서 stream을 열어서 viewModelA와 viewModelB 에서 같은 repository의 stream을 구독해서 state를 바꿔주는 방식으로 했는데 usecase를 사용하려고하니 해당구조는 어려움이 생겨서 어떻게 할지 고민하다가 질문 드립니다!
-
해결됨[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
Preview 질문
안녕하세요!!현재 ImageBasic 파트를 보고 있는데, 현재 제 Xcode에서는 선생님 위에 떠 있는 프리뷰 툴박스(?)와 파란색 가이드라인(frame의 width, height를 표시해주는?)도 보이지 않는데, 이것들을 보이게 설정하려면 어떻게 해야하나요?여기저기 눌러보고 검색도 해봤는데, 찾지 못해서 질문드립니다!
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
Swift에 대한 질문입니다.
안녕하세요. iOS 강의 너무 잘 듣고 있습니다. 강의를 듣는중에 궁금한점이 있어 이렇게 질문을 올립니다.해당 강의에서 Swift의 동작방식이라던가, selector등을 배웠다고 말씀하시면서 자세한 설명은 여기서 다뤄지지 않는데 이러한 설명들은 어디에서 들을 수 있는건가요??참고로 저는 인프런에서 iOS 프로그래밍 강의만 구매해서 듣고 있습니다!
-
해결됨아이폰 앱 개발 입문 1편
Products 폴더와 .app 파일
Products 폴더와 .app 파일이 없습니다... 그리고 Main.storyboard아래 노란색경고로 Frame for "My Dream is to fly" will be different at run time. 이라고 나옵니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
코드베이스 오토레이아웃에 대한 질문입니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 현재 BMI앱을 코드베이스로 만들어보고 있는 수강생입니다!코드베이스로 UI를 만드는 중에 궁금한 점이 생겨 질문드립니다.private let heightLabel: UILabel = { let label = UILabel() label.text = "키" label.textAlignment = .center label.font = .boldSystemFont(ofSize: 15) label.frame.size.width = 40 return label }()horizontal 스택뷰내부에 TextField와 함께 넣어둔 레이블입니다. 위에 보시는 것처럼 label.frame.size.width = 40을 통해 저는 레이블의 너비를 정해주었습니다. 하지만 빌드한 결과는 다음 사진과 같았습니다.그리고 계속 삽질하며 테스트해본 결과 NSLayoutConstraint.activate([ heightLabel.widthAnchor.constraint(equalToConstant: 40) ])이렇게 오토레이아웃을 통해서만 조절해줄 수 있었습니다.제 질문을 정리해보자면,코드베이스UI에서 프로퍼티의 클로저 내부에서 원래 크기조절을 할 수 없는 것인지 그리고 원래 NSLayoutConstraint내부에서 사이즈를 조절하는게 정석적인 것인지 궁금합니다.사진에 보시는 것처럼 키의 텍스트필드만 줄어들고 몸무게의 텍스트필드는 정상적인데 양쪽의 프로퍼티 모두 동일하게 설정해주었는데 왜 이러는걸까요? 이렇게 2가지 입니다!
-
미해결최신 SwiftUI와 UIKit과 함께하는 올인원 iOS 앱 개발 강의
카페앱 포폴 만들기 강의에서 오류가 발생합니다
Cocoa pods 를 활용한 이미지 뷰 처리 강의와 카페앱 포폴 만들기 강의에서 Toast-Swift 를 설치해서 사용하려고 하면 아래와 같은 에러가 발생합니다File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a 에러가 납니다. Version 14.3.1 (14E300c)minumum deploymnets 16.4입니다 어떻게 하면 정상적으로 실행할 수 있나요?
-
미해결Flutter 초입문 왕초보편
지도위에 이동 경로 스리기
지도위에 이동경로 그리는 부분에서새로운 경로가 그려지고 조금 있으면 경로가 지워 집니다. 이렇게 동작하는 것이 정상인가요?설명 중에는 그런 내용에 없어 문의 드립니다.
-
해결됨[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
LazyGrid 질문 있습니다.
안녕하세요 Netflix나 인스타 말고 Printerest와 같이 그리드 Item의 높이를 서로 다르게 하려면 어떻게 해야 하나요?ScrollView(.vertical) 안에 LazyVGrid로 넣고 높이가 다른 아이템을 넣도록 뷰를 그렸는데 두열의 높이가 다르면 한쪽에 여백이 들어가게 되더라구요..Printerest 화면처럼 양 옆에 놓은 아이템의 높이가 다를경우 여백없이 배치하고 싶습니다.감사합니다!!
-
미해결Flutter 초입문 왕초보편
구글 맵 플랫폼
구글맵플랫폼 사용시 결제 계정을 등록하라고 합니다.무료로 사용하는 방법이 있는 지 문의 드립니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
updateConstrants 부분에서 질문이 있습니다!
override func updateConstraints() { print(#function) myButton.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 0.5).isActive = true myButton.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 0.5).isActive = true myButton.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true myButton.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true super.updateConstraints() } 지금 ViewCycleCustomBtn 프로젝트 설명해주실 때 궁금증이 생겨서 질문드립니다. 일단 제가 이해한 바로는 런루프가 돌면서 드로잉사이클을 1초에 최대60회까지 다시 사이클을 도는걸로 이해했습니다. 만약 1초에 필요에 의해 20번이 불렸다고 가정했을 때,그럼 updateConstraints라는 함수도 20번이 불릴거 같은데요. 그럼 제약이 중복돼서 (20 * 제약조건 4개) 80개가 활성화 되는 느낌이 아닌가요?저 메서드 내부에서 제약 초기화를 해주는건가요?제가 이해를 잘못한걸까요? 만약 초기화가 된다고 해도, 저 메서드 내부에서 저렇게 설정 해버리면 결국 20번이 불릴 텐데 init 내부에서 제약조건을 한번만 설정 하는게 낫지 않나요? (불필요한 작업 이라고 생각이 들어서요)
-
미해결Flutter 중급 1편 - 클린 아키텍처
32강 질문 있습니다.
Navigator.push 에서 리턴받는 불리언값은 어떻게 정해지는것인가요?editnote init()에서 navigator.pop(context, true)에서 넘겨준 트루를 리턴받는 것인가요? 저는 이렇게 이해 했습니다.노트스크린(홈)에서 화면 푸시를 하면 edit페이지로 이동하고스트림으로 save 노트 이벤트를 상시 대기하다가 이벤트가 발생하면 true값과 동시에 pop을 하고 노트스크린(홈)에서 isSave에 pop에서 넘겨준 true를 리턴받고 if(isSaved !=null && isSaved){ viewModel.onEvent(NotesEvent.loadNotes()); } 을 수행하여 홈을 리로드하여 새로운 데이터를 받아주는것이라고 생각했습니다. 이게 맞을까요?이렇게되면 홈에서의 await Navigator.push()는 다음페이지에서 넘어갔다가 pop되는 것을 기다리는 await인가요? 아니면 무엇인가요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
동적 디스패치에 관한 질문있습니다!
로그인 기능 강의중에, 뷰컨트롤러에 final을 붙이면 동적디스패치를 줄일 수 있다고 말씀해주셨는데용동적디스패치를 공부하다 보니까 궁금한 점이 있어서 질문드려요! 뷰컨트롤러가 더이상 상속되지 않았으면.Whole Module Optimization 기능으로 자동으로 뷰컨트롤러의 final 추론이 되지 않나요?
-
미해결iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해
안녕하세요, GCD 관련 질문드립니다..
안녕하세요, 앨런, Qos 부분을 수강하면서수업 자료에 있던 코드들을 이렇게 바꾸어서 실행해보았는데요...첫줄은 sync 라서 시작/완료까지 실행하고 task2, task4(비동기라서 완료까지 안 찍고 넘어가고), 그리고 task3 시작/완료 라고 이해를 했습니다. 제가 예상한 결과였고, 그렇게 출력이 되었어요. 근데 동일한 코드를 반복적으로 실행하면 그때마다 다른 결과가 나오는데.. 왜 그런지 모르겠어서 질문 남깁니다.. ㅠㅠ 어쩔때는 4가 먼저 실행되고어쩔때는 3이 먼저 실행되더라구요..왜 그렇게 순서가 바뀌는지가 가장 궁금하고..qos를 통해서 우선순위를 설정한다는 의미가 언제 어떻게 우선순위대로 실행되도록 한다는 것인지 이해를 못 한 것 같습니다...위 코드에서 userInteractiveQueue 가 defaultQueue.async(qos: .userInitiated)보다 우선순위가 높은 것이 실행을 먼저 하는 것은 아닌것 같은데.. 우선순위라는게 어떻게 반영이 되는것인지 감이 안 잡힙니다 ㅠㅠ 아니면 제가 쓸데없는 코드를 보면서 고민한건지.. 답변부탁드려요!!
-
미해결Flutter 중급 1편 - 클린 아키텍처
noteRepository 추상클래스 테스트에 관한 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 클린아키텍쳐를 열심히 학습중인데요 추상클래스(noteRepository)를 만드는 이유가 테스트가 원활하게 가능하게 추상클래스를 만든다고 했는데그러면 테스트코드를 작성할때 추상클래스(noteRepository)에 대한 테스트와 구현체 클래스(noteRepositoryImpl)에 대한 테스트를 각각 작성하는게 좋은 방법일까요? 그렇다면 추상클래스는 메서드만 정의되어있는 상태인데 어떤방식으로 테스트코드를 작성해야할까요?
-
미해결Flutter 초입문 왕초보편
floatingActionButton 미출력 문의
영상의 코드와 다른게 보이지 않으나... (영상의 코드)(제가 작성 한 코드) 플로팅버튼도 보이지 않습니다.... 버튼이 보이지 않더라도 영상상 위치 지점을 클릭했을시 run 쪽에서 클릭 반응도 없구요... 그리고 아까 답변 감사히 보고 앱 바쪽에 backgroundColor: Colors.amber 선언도 했는데 앱바쪽 색상이 안 변합니다. 선언 한 위치가 문제였을까요....? 진짜 생초보라 번거롭게 만들어드리는것 같아서 죄송스럽네요.. 어느 부분이 틀린지 감도 안 잡혀 통채로 올려봅니다. import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const 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('홈'), backgroundColor: Colors.amber), body: Center( child: Text( '0', style: TextStyle(color: Colors.red, fontSize: 70), ), ), floatingActionButton: FloatingActionButton( onPressed: () { print('클릭'); }, child: Icon(Icons.add), ), ); } }
-
미해결[iOS] Swift Modern Collection View & MVVM 패턴 가이드
섹션 3. Modern collection view 심화-snapshot 구현 -
섹션 3. Modern collection view 심화-snapshot 구현 -tv 데이터 적용에 있는 예제 파일을 다운로드 해서, 실행하면 아래의 error을 내고 exception을 발생시킵니다. 아마도 1)http://themoviedb.org에 로그인이 안되고자료를 받지 못했서 발생한 문제 인듯합니다.현재 해당 싸이드에 계정을 만들어지지 않습니다. (해당 싸이트로 부터 인증 메일이 오지 않음) 2) rxswift가 학습되지 않고, 계정이 만들어 지지 않아 섹션 2는 건너 띠고 section3을 보니 이런 문제가 발생하네요. 3알째 인증메일이 오지 않고, support에 메일을 보내도 대꾸가 없습니다. 3) 일단, collectionView 디자인만 보는 좋은 방법이 없을까요? 감사합니다. 2023-11-01 11:06:39.462: Network.swift:25 (getItemList(path:)) -> subscribed2023-11-01 11:06:40.027: Network.swift:25 (getItemList(path:)) -> Event next(103 bytes)2023-11-01 11:06:40.031: Network.swift:25 (getItemList(path:)) -> isDisposed/Users/besthwang/Library/Developer/Xcode/DerivedData/TVMOVIE-fynfoxlfotueejaqckjipwildmop/SourcePackages/checkouts/RxSwift/Sources/RxCocoa/Observable+Bind.swift:100: Fatal error: Binding error: keyNotFound(CodingKeys(stringValue: "page", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"page\", intValue: nil) (\"page\").", underlyingError: nil))2023-11-01 11:06:40.046882+0900 TVMOVIE[3229:2099837] /Users/besthwang/Library/Developer/Xcode/DerivedData/TVMOVIE-fynfoxlfotueejaqckjipwildmop/SourcePackages/checkouts/RxSwift/Sources/RxCocoa/Observable+Bind.swift:100: Fatal error: Binding error: keyNotFound(CodingKeys(stringValue: "page", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"page\", intValue: nil) (\"page\").", underlyingError: nil)) 등의
-
미해결Flutter 초입문 왕초보편
53. 입력버튼 validation
알려주신데로 코드 작성하면 어던 부분이 잘못되었는지 모르겠으나 정상 동작하지 않습니다. (입력 값 모두 입력 시 결과 화면으로 넘어가지 않음.)인터넷 찾아보고 아래 처럽 바꾸니 정상 동작하는데, 어떤 것이 잘못된 것인지 알려주시면 감사하겠습니다.동작 코드 if (_formKey.currentState!.validate()) { Navigator.push( context, MaterialPageRoute( builder: (context) => const ResultScreen( height: 175, weight: 1000, ), ), ); } 이상 코드(강의 내용 / 입력값중 빈곳이 있는 경우 결과 화면으로 이동) onPressed: () { if (_formKey.currentState?.validate() ?? false) { return; } Navigator.push( context, MaterialPageRoute( builder: (context) => const ResultScreen( height: 175, weight: 1000, ), ), ); }, 잘못된 곳 설명 부탁 드립니다.
-
미해결[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
Textfield 입력시 한글 자음 모음 분리 현상이 발생 합니다
최근 Xcode 업데이트 이후 textfield에 한글 입력시 자음 모음이 분리 되서 입력이 됩니다 .ㄱ ㅏ ㄴ ㅏ ㅊ ㅗ ㅣ 이런식으로 입력이 됩니다😭영어는 잘됩니다.해결 방법이 있을까요?
-
미해결Flutter 초입문 왕초보편
80강. WebView 기본 설정 오류 문의
Webview 버전을 4.0 → 3.0.4로 바꾼 후에, 아래와 같은 오류가 발생하였습니다.인터넷에 찾아봐도 내용이 안 나와서 문의드립니다. 어떻게 해결할 수 있을까요?오류 문구 : lib/main.dart: Error: Error when reading '.dart_tool/flutter_build/dart_plugin_registrant.dart': 지정된 경로를 찾을 수 없습니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용-2 앱 / 코드설정하기 (활용 앱 14강) 델리게이트 부분에 궁금한게 있습니다.
여기서 보면 textField 라는 함수를 생성만 해놓았는데?왜 동작을 하게 되는 거죠?그러니까 함수를 호출해야 동작하는 거 아닌가요?함수를 호출하는 역할을 하게 되는게 textfield를 누르거나 글자나 숫자를 입력하거나 하는 행동이 호출하게 되는 건가요? 유사한 질문이 있었는데.. 이해를 못했어요