이전에 면접 준비를 하면서 CS 공부를 할 때 SOLID에 대해서 작성했던 적이 있다.https://sj-d.tistory.com/49 객체지향 설계의 5원칙 SOLIDIntro면접때 보면 자격요건 혹은 우대사항에서 제일많이 본 말이 있다.객체지향과 SOLID 라는 단어이다.이번에는 객체지향의 5가지 설계원칙이라고 불리는 SOLID에 대해서 알아보자 What is SOLID? SRP(sj-d.tistory.com 그때 당시에는 SOLID를 공부하면서도 Swift만 적용하고 현재는 내용을 많이 잃고 지내면서 SOLID원칙을 크게 생각하지 않는 것 같다. 근데 Dart도 객체지향 언어인데 이걸 모르면 안되겠다 라는 생각이 들어 다시 공부하면서 알아보려고 한다. 간단하게 요약하면 SOLID는 객체 지향 프로..
원래는 Bloc에 대해서 자세하게 작성하고 싶었지만, Bloc에 대한 내용을 잘 정리하기엔 아직 초보 플러터 개발자의 입장에서 조금 더 내용의 구체화가 필요하다고 생각이 들었다.그래서 Bloc 공식문서 예제에 자주 등장하는 Equtable 이라는 라이브러리가 나오는데 이 라이브러리에 대해서 어떤 역할을 하고 왜 사용하는게 좋은지이 부분도 알고 넘어가면 좋을 것 같아서 자세하게 공부해봤다.1. Equatable이란?Equatable은 Dart와 Flutter에서 객체 간의 값 비교를 쉽게 구현할 수 있도록 도와주는 패키지이다.그냥 값들을 비교하면 되는거 아니야? 라고 생각할 수 있지만 전혀 아니다.Dart에서는 기본적으로 두 객체를 비교할 때 참조 동등성(reference equality)를 사용한다.한마..
모바일 앱 개발자로서 가장 기본이 되는 것은 앱의 생명주기(App LifeCycle)에 대한 이해라고 생각한다. iOS 개발을 시작하면서 이 개념을 처음 접하게 되었다.하지만 Flutter 개발자로 전향한 후에는 이 중요한 개념을 다소 소홀히 했던 것 같다. Flutter의 직관적인 생명주기 덕분에 깊이 있게 들여다보지 않았다.특히 Android의 생명주기는 iOS와는 또 다른 특성을 가지고 있는데, 이 부분에 대해서는 깊이 있는 학습이 부족했다.이런 이해 부족은 실제 프로젝트에서 문제로 이어졌다. 앱이 백그라운드로 전환될 때 Android에서는 동영상의 사운드가 계속 재생되는 반면, iOS에서는 중단되는 현상이 발생했다.이러한 경험을 통해 플랫폼별 생명주기의 차이점을 제대로 이해하는 것이 얼마나 중요한..
벌써 2024년이 끝나가고 있다.나는 지난 1년동안 어땠을까?나 자신을 돌아보고 반성하고 나아가보자!2024년 신입 개발자로서 되돌아보기사실 처음 시작은 iOS 개발자 현재는 플러터 개발자사실 나는 iOS 개발자가 되고 싶었다. 어떻게 보면 도망쳐 나왔다.2023년에 처음 iOS 개발에 대해 접하고나서 멋쟁이 사자처럼 부트캠프를 수료하고어 그래도 이정도 기술스택이고 전공자면 어디든 취업할수있지 않을까? 라고 생각했지만 취업시장은 생각보다 너무 차가웠다.막상 면접분위기도 다 좋았고 있는 나 그대로를 보여주었지만 계속 떨어졌다.가끔 대학교, 군대동기들을 만나면 다들 좋은 회사를 다니면서 자기 발전해 나아가는 모습을 보면 나 스스로 초조해졌다.그러다 우연한 기회로 고향 헬스장에서 만난 형님의 외주 제안이 전환..
이전에도 말했듯이 모바일 개발자로써 디자인에 대한 갈망이 있다.어떻게하면 조금더 기깔나게 만들수 있을까? 라는 생각이 가장 크다.그게 내가 모바일 개발자가 되고 싶었던 이유였으니까.그러던 중 오픈카톡방에서 쿠로곰님이 아티클을 정리해서 올려주신 글을 봤는데 딱 눈에 들어온 Medium 글이 있었다.Mastering Shapes and Clipping in Flutter 라는 제목을 가졌는데글을 보자마자 뭐야 너무 내맘에 쏙이잖아 라는 생각이 들었다.게다가 이번 Future에서 ABC Studio @Line 에서 박유진님이 연사하신 풍성한 디자인 요청사항에 대응하기 를 들으면서와 저 모양을 저렇게 만들수도 있구나 느끼면서 저렇게 창의적으로 디자인 사항을 반영해보고 싶었던 부분도 컸던것 같다.나였으면 그냥 이..
처음에 ShoreBird 관련해서 글을 올리고 다음글은 어떤글을 써야할지에 대해서 크게 고민이 있었다.그러다가 문득 든 생각이 내가 왜 모바일 개발자가 되었는지였다.사실 그냥 개발을 좋아했던 학생이였던 나는 ROTC 복무 이후에 다시 개발을 시작할때 원래하던 머신러닝을 해야겠다고 생각을 했었다.근데 마침 내 눈앞에 놓인 맥북과 과선배의 iOS에 대한 추천이였다. 그렇게 나는 Xcode 를 설치해서 뷰를 그려보았다.머신러닝만하던 나에겐 신세계였다 나는 정확도 하나를 낮추기 위해 많은 노력을했는데 이렇게 코드 한줄에 뷰를 그려준다고?이게 내가 모바일 개발에 빠지게된 이유였고 항상 앱을 만들때 이쁨을 추구하는 나로써 이쁜 애니메이션을 넣는 방법을 찾게되었다.그럼 왜 Rive 를 사용하려고 할까? iOS 네이티..
글또에 참여하게 되었고 처음에는 어떤 주제로 글을 써야할지 고민이 많았다.그러던 중 24년 9월 마지막주에 Future 에 참여하여 연사를 듣게되었다.그 중 내 관심을 끌었던건 Eric Seidal 님의 Flutter ShoreBrid 작동원리였다.이전에는 Shorebirde 가 정확히 어떤 원리로 동작하는지, 사용하면 어느 부분에서 이점을 갖는지 정확하게 알지못했다.연사를 들으면서도 영어로 설명했던 연사라 이해가 잘 되지 않았다.그래서 이번 기회에 제가 이해한 내용을 정리하고 추가적으로 공부해서 기록하려고 해당 내용을 쓰기로 다짐헸다.그럼 Flutter Shorebird에 대해서 Even하게 익혀보자! What is Shorebird? Shorebird는 Flutter 애플리케이션을 위한 코드 업데이..
Xcode 16 버전 업데이트 이후 제가 겪었던 오류들과 오류들을 어떻게 해결할 수 있는지에 대해 글을 써보려고 합니다 1. clang: error: unsupported option '-G' for target 'arm64-apple-ios13-simulator'이 오류는 Flutter 프로젝트에서 boringssl-grpc 관련 라이브러리에서 발생하는 오류 중 하나입니다.해결을 위해서는 Podfile 파일을 수정해야 합니다. Podfile 수정파일 위치: /rootProject/ios/Podfilepost_install 블록에 아래 코드를 추가합니다post_install do |installer| installer.generated_projects.each do |project| projec..
글또 10기를 지원하게 되면서 황당한 사전 작성 내용을 받았다.처음 글또에 지원했을때는 큰 생각이 없었다.책임감을 갖고 글쓰면 되겠지 라는 생각이였다.하지만 구글 폼을 작성하고 삶의 지도라는 나에 대해 작성해야 된다는 내용을 보고 깊은 생각을하면서 작성하게 되었다. [대학교 까지의 나]시골에서 태어나 큰 특기도 없었고, 그저 농구하는걸 좋아하고, 컴퓨터 만지는걸 좋아하는 아이였다.누구나 주변에 그런 친구가 있을거라고 생각한다. 그냥 평범한 아이, 중간은 가는 아이가 나를 가장 크게 설명해주는것 같다.학창시절에도 크게 큰 특징없고 크게 튀지도 않았고, 그냥 친구들과 놀면서 다니는걸 즐겼던 것 같다.컴퓨터 공학과도 사실 큰 생각 없었다. 나는 컴퓨터 만지는걸 좋아하니까 컴퓨터공학과 가야지 라는 생각으로 지원..
Flutter 앱에서 iOS와 안드로이드에서 스크린샷 방지하기혹시 중요한 정보를 다루는 앱을 개발하면서 스크린샷 방지 기능이 필요했던 적이 있으신가요? 뉴스나 은행 앱처럼 민감한 정보를 다루는 앱들은 사용자 개개인의 데이터 보호를 위해 스크린샷을 방지하는 기능이 종종 필요합니다.오늘은 Flutter 앱에서 iOS와 안드로이드에서 스크린샷을 방지하는 방법에 대해 알아보겠습니다. 코드 예제와 함께 설명드리니 천천히 따라오세요!Flutter에서 iOS 스크린샷 방지 iOS에서 스크린샷 방지하기먼저, iOS에서 스크린샷을 방지하기 위해 우리는 AppDelegate.swift 파일을 수정해야 합니다.import UIKitimport Flutter@UIApplicationMain@objc class AppDeleg..