์์นด๋ฐ๋ฏธ ๋ฌ๋๋ค์๊ฒ ์ฒด๊ณ์ ์ธ ๋ชจ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ, ํฌํญ์์๋ ์์ ์ ์ผ๋ก ๋ชจ์์ ์ฐพ๊ณ ์ด์ด๊ฐ ์ ์๋๋ก ๋๋ ์ฑ์ ๋๋ค.
Academy GroupFinder๋ ์์นด๋ฐ๋ฏธ ๋ด์์ ๋ชจ์์ ์ฐพ๊ณ ์ ํ๋ ๋ฌ๋๋ค์ด ํ์ํ ์ ๋ณด๋ฅผ ํ๋์ ํ์ธํ๊ณ , ์์ ์๊ฒ ๋ง๋ ๋ชจ์์ ๋ณด๋ค ์ฝ๊ฒ ๋ฐ๊ฒฌํ ์ ์๋๋ก ๋๊ธฐ ์ํด ๋ง๋ iOS ์ฑ์
๋๋ค.
ํฌํญ์ด๋ผ๋ ์ง์ญ์ ํ๊ฒฝ ์์์๋ ๋ชจ์์ด ์ผํ์ฑ์ผ๋ก ๋๋์ง ์๊ณ , ์ง์์ ์ด๊ณ ์์ ์ ์ผ๋ก ์ด์ด์ง ์ ์๋ ๊ธฐ๋ฐ์ ๋ง๋ จํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ์์นด๋ฐ๋ฏธ ๋ด ๋ชจ์ ์ ๋ณด๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ๊ณต
- ๋ฌ๋๊ฐ ์์ ์๊ฒ ๋ง๋ ๋ชจ์์ ์ฝ๊ฒ ํ์ํ ์ ์๋๋ก ์ง์
- ์ง์ญ์ ์ ์ฝ ์์์๋ ๋ชจ์์ด ๊พธ์คํ ์ด์ด์ง ์ ์๋ ํ๊ฒฝ ์กฐ์ฑ
- ์ฌ์ฉ์ ๋๋ค์ ์ ๋ ฅ ๋ฐ ์ ์ฅ
- ๋ชจ์ ๋ชฉ๋ก ๋ณด๊ธฐ
- ๋ชจ์ ์์ธ ์ ๋ณด ํ์ธ
- ๋ชจ์ ๊ฐ์ค
- ๋ชจ์ ์ ์ฒญ ๋ฐ ์ทจ์
- ์ฑ ์คํ ์ ๊ฐ์ฅ ๋จผ์ ํ์๋๋ ํ๋ฉด์ ๋๋ค.
- ์ฌ์ฉ์๋ ๋๋ค์์ ์ ๋ ฅํ๊ณ ์ ์ฅํ ๋ค ์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์
๋ ฅํ ๋๋ค์์
@AppStorage๋ฅผ ํตํด ๋ก์ปฌ์ ์ ์ฅ๋ฉ๋๋ค.
- ๋ฑ๋ก๋ ๋ชจ์ ๋ชฉ๋ก์ 2์ด ๊ทธ๋ฆฌ๋ ํํ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- ๊ฐ ๋ชจ์์ ์์ด์ฝ, ๋ชจ์ ์ด๋ฆ, ๋ชจ์ง ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
- ์ฐ์ธก ์๋จ์
Make Group๋ฒํผ์ ํตํด ์ ๋ชจ์ ๊ฐ์ค ํ๋ฉด์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
- ์ ํํ ๋ชจ์์ ์๊ฐ, ์ฅ์, ์ค๋ช , ๊ฐ์ค์, ํ์ฌ ์ธ์์ ํ์ธํ ์ ์์ต๋๋ค.
- ์ ์ฒญ์ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ต๋๋ค.
- ํ์ฌ ์ฌ์ฉ์์ ์ํ์ ๋ฐ๋ผ ๋ชจ์ ์ ์ฒญ ๋๋ ์ ์ฒญ ์ทจ์๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ ์ ์ด๊ณผ, ๊ฐ์ค์ ๋ณธ์ธ ์ ์ฒญ ๋ฑ ์์ธ ์ํฉ์ ์๋ฆผ์ผ๋ก ์๋ดํฉ๋๋ค.
- ๋ชจ์ ์ด๋ฆ, ์๊ฐ, ์ฅ์, ์ค๋ช , ์ต๋ ์ธ์์ ์ ๋ ฅํด ์ ๋ชจ์์ ๊ฐ์คํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ํญ๋ชฉ ์ ๋ ฅ ์ฌ๋ถ์ ์ต๋ ์ธ์ ์ซ์ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค.
- ์ฑ ์คํ
- ๋๋ค์ ์ ๋ ฅ ๋ฐ ์ ์ฅ
- ๋ฉ์ธ ํ๋ฉด์์ ๋ชจ์ ๋ชฉ๋ก ํ์
- ๋ชจ์ ์์ธ ์ ๋ณด ํ์ธ
- ์ ์ฒญ ๋๋ ์ทจ์ ์งํ
- ํ์ ์ ์ ๋ชจ์ ๊ฐ์ค
ADA_Challenge1/
โโโ challenge1/
โ โโโ challenge1App.swift # ์ฑ ์ง์
์
โ โโโ ContentView.swift # ๋ฉ์ธ ํ๋ฉด
โ โโโ NicknameSetupView.swift # ๋๋ค์ ์ค์ ํ๋ฉด
โ โโโ ClubDetailView.swift # ๋ชจ์ ์์ธ ํ๋ฉด
โ โโโ AddClubView.swift # ๋ชจ์ ๊ฐ์ค ํ๋ฉด
โ โโโ Club.swift # ๋ชจ์ ๋ฐ์ดํฐ ๋ชจ๋ธ
โ โโโ ClubData.swift # ์ํ ๋ชจ์ ๋ฐ์ดํฐ
โ โโโ Assets.xcassets/ # ์ฑ ์์ด์ฝ ๋ฐ ์ปฌ๋ฌ ์์
โ โโโ piano.jpg
โ โโโ soccer.jpg
โ โโโ swim.JPEG
โโโ challenge1.xcodeproj/ # Xcode ํ๋ก์ ํธ ํ์ผ
โโโ readme.md์ฑ์ Club ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
clubName: ๋ชจ์ ์ด๋ฆclubTime: ๋ชจ์ ์๊ฐclubPlace: ๋ชจ์ ์ฅ์clubDescription: ๋ชจ์ ์ค๋ชclubOwner: ๋ชจ์ ๊ฐ์ค์maxMembers: ์ต๋ ๋ชจ์ง ์ธ์members: ์ ์ฒญ์ ๋ชฉ๋กimageName: ๋ชจ์ ์์ด์ฝ๋ช
NavigationStack์ ์ฌ์ฉํด ํ๋ฉด ์ด๋์ ๊ตฌ์ฑํ์ต๋๋ค.sheet๋ฅผ ํ์ฉํด ๋๋ค์ ์ค์ ๋ฐ ๋ชจ์ ์์ธ ํ๋ฉด์ ํ์ํฉ๋๋ค.@State,@Binding,@AppStorage๋ฅผ ์ฌ์ฉํด ํ๋ฉด ์ํ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.- ์ ์ ์ด๊ณผ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฉ์ธ ํ๋ฉด ์นด๋ ์์์ ๋ค๋ฅด๊ฒ ํ์ํด ๋ชจ์ง ์ํ๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ๋ฌํฉ๋๋ค.
- ๋ฌ๋๋ค์ด ๋ชจ์ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ๊ณ ์ฐธ์ฌ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
- ๋จ๋ฐ์ฑ ์ฐธ์ฌ๊ฐ ์๋๋ผ ์ง์์ ์ธ ์ปค๋ฎค๋ํฐ ํ์ฑ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
- ํฌํญ์์๋ ์์ ์ ์ผ๋ก ๋ชจ์์ ์ฐพ๊ณ ์ด์ด๊ฐ ์ ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
ํฅํ์๋ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ธฐ๋ฅ ํ์ฅ์ ์ค์ฌ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ ์งํํ ์์ ์ด๋ค.
- ๋๋ค์ ์ค์ ํ๋ฉด, ๋ชจ์ ์์ธ ํ๋ฉด, ๋ชจ์ ๊ฐ์ค ํ๋ฉด์ UX/UI๋ฅผ ์ ๋ฐ์ ์ผ๋ก ๋ฆฌ๋์์ธ
- ๋๋ค์๊ณผ ๊ฐ์ค๋ ๋ชจ์ ์ ๋ณด๊ฐ ์ฑ ์ข ๋ฃ ํ์๋ ์ ์ง๋ ์ ์๋๋ก ์๊ตฌ ์ ์ฅ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋ชจ์ ๊ฐ์ค ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๋์ ํ๊ณ , ํ ํ๋ฉด์์ ๋ชจ์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์๋๋ก ๊ฐ์
- Swift
- SwiftUI
- Xcode
![]() |
![]() |
![]() |
![]() |
![]() |
An app that provides academy learners with organized group information, helping them find and continue groups more steadily in Pohang.
Academy GroupFinder is an iOS app designed to help learners within the academy quickly check the information they need at a glance and discover groups that fit them more easily.
Its goal is to create a foundation where groups do not end as one-time events, but can continue in a stable and sustainable way even within the regional environment of Pohang.
- Provide group information within the academy in an intuitive way
- Help learners easily explore and find groups that suit them
- Build an environment where groups can continue consistently despite regional limitations
- Entering and saving a user nickname
- Viewing the group list
- Checking detailed group information
- Creating a new group
- Applying to a group and canceling an application
- This is the first screen shown when the app launches.
- Users can start using the app after entering and saving a nickname.
- The entered nickname is stored locally using
@AppStorage.
- Users can browse registered groups in a two-column grid layout.
- Each group visually shows its icon, group name, and recruitment availability.
- The
Make Groupbutton in the top-right corner moves the user to the group creation screen.
- Users can check the selected group's time, location, description, host, and current member count.
- The applicant list is also available on this screen.
- Depending on the current user's status, they can either apply to the group or cancel their application.
- Exceptional cases such as a full group or the host trying to apply are communicated through alerts.
- Users can create a new group by entering the group name, time, location, description, and maximum number of members.
- The app validates whether all fields are filled in and whether the maximum member count is valid.
- Launch the app
- Enter and save a nickname
- Browse the group list on the main screen
- Check detailed group information
- Apply or cancel
- Create a new group if needed
ADA_Challenge1/
โโโ challenge1/
โ โโโ challenge1App.swift # App entry point
โ โโโ ContentView.swift # Main screen
โ โโโ NicknameSetupView.swift # Nickname setup screen
โ โโโ ClubDetailView.swift # Group detail screen
โ โโโ AddClubView.swift # Group creation screen
โ โโโ Club.swift # Group data model
โ โโโ ClubData.swift # Sample group data
โ โโโ Assets.xcassets/ # App icon and color assets
โ โโโ piano.jpg
โ โโโ soccer.jpg
โ โโโ swim.JPEG
โโโ challenge1.xcodeproj/ # Xcode project file
โโโ readme.mdThe app manages group information based on the Club model.
clubName: Group nameclubTime: Group scheduleclubPlace: Group locationclubDescription: Group descriptionclubOwner: Group hostmaxMembers: Maximum number of membersmembers: Applicant listimageName: Group icon name
NavigationStackis used to build screen navigation.sheetis used to present the nickname setup and group detail screens.@State,@Binding, and@AppStorageare used to manage UI state and user information.- The main screen card color changes depending on whether the group is full, making recruitment status easy to understand.
- Learners can quickly understand group information and decide whether to participate.
- The app can contribute to building an ongoing community rather than one-time participation.
- It provides a user experience that helps users find and continue groups more steadily in Pohang.
The following improvements are planned with a focus on enhancing user experience and expanding functionality.
- Redesign the nickname setup screen, group detail screen, and group creation screen from a UX/UI perspective
- Add persistent storage so that the user's nickname and created group information remain saved even after the app is closed
- Introduce an image attachment feature when creating a group, and improve the home screen so that each group's representative image can be displayed
- Swift
- SwiftUI
- Xcode
![]() |
![]() |
![]() |
![]() |
![]() |




