Daehan Lim

Header Project Icon

PlaceFinder - Location Search App

πŸ“ Overview

πŸ“Œ App Introduction: Mobile app for finding nearby places using Naver Local Search API and GPS location services
πŸ•’ Duration: April 20, 2025 ~ April 22, 2025 (3 days)
πŸ“± Platform: Flutter cross-platform app (iOS, Android)
πŸ‘₯ Team Size: 1 developer (Personal project)
πŸ’Ό Role: Entire app UI/UX design & development, API integration
πŸ› οΈ Key Technologies: Flutter Dart Naver Local API VWorld API Riverpod Geolocator InAppWebView URL Launcher Dio
πŸ”— GitHub: daehan-lim/flutter-place-finder

Home screen Web view screen Naver screen No results screen Offline screen Apple Maps screen Map selection screen Naver Map screen Google Map screen Kakao Map screen

πŸ“– Project Description

PlaceFinder helps users discover nearby places by searching by place names or addresses. The app uses Naver Local Search API and VWorld API to provide GPS-based location search and supports seamless redirection to popular map applications. Users can quickly explore local businesses, restaurants, and points of interest while accessing detailed information through in-app web view integration.

πŸ› οΈ Tech Stack

Flutter Dart Riverpod Dio Naver API VWorld API Geolocator InAppWebView URL Launcher Flutter Dotenv

πŸ“‹ Project Structure

β”œβ”€β”€ app/                               # App configuration and setup files
β”‚   β”œβ”€β”€ constants/                     # App-wide constant definitions
β”‚   β”‚   β”œβ”€β”€ app_colors.dart            # Color constants
β”‚   β”‚   β”œβ”€β”€ app_constants.dart         # General app constants
β”‚   β”‚   └── app_styles.dart            # Style definitions
β”‚   β”œβ”€β”€ app_providers.dart             # Riverpod provider setup
β”‚   └── theme.dart                     # App theme configuration
β”‚
β”œβ”€β”€ core/                              # Core functionality and common utilities
β”‚   β”œβ”€β”€ exceptions/                    # App-wide exception classes
β”‚   β”‚   └── data_exceptions.dart       # Data-related exception classes
β”‚   β”œβ”€β”€ services/                      # External service integrations
β”‚   β”‚   └── map_launcher_service.dart
β”‚   └── utils/                         # Helper functions and utility classes
β”‚       β”œβ”€β”€ geolocator_util.dart
β”‚       β”œβ”€β”€ snackbar_util.dart
β”‚       └── string_format_utils.dart
β”‚
β”œβ”€β”€ data/                              # Data layer and data access
β”‚   β”œβ”€β”€ dto/                           # Data Transfer Objects
β”‚   β”‚   β”œβ”€β”€ naver_place_dto.dart
β”‚   β”‚   └── vworld_district_dto.dart
β”‚   β”œβ”€β”€ model/                         # Data models
β”‚   β”‚   └── place.dart
β”‚   β”œβ”€β”€ network/                       # Network communication
β”‚   β”‚   └── dio_clients.dart
β”‚   └── repository/                    # Repository implementations
β”‚       └── location_repository.dart
β”‚
β”œβ”€β”€ ui/                                # User interface
β”‚   β”œβ”€β”€ pages/                         # App screens
β”‚   β”‚   β”œβ”€β”€ home/                      # Home screen
β”‚   β”‚   β”‚   β”œβ”€β”€ home_page.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ home_view_model.dart
β”‚   β”‚   β”‚   └── widgets/
β”‚   β”‚   β”‚       └── home_list_item.dart
β”‚   β”‚   └── web/                       # WebView screen
β”‚   β”‚       β”œβ”€β”€ place_web_page.dart
β”‚   β”‚       └── place_web_page_view_model.dart
β”‚   └── widgets/                       # Common widgets
β”‚       └── error_layout.dart
β”‚
└── main.dart                          # App entry point

🎯 Key Features

🌟 Implementation & Achievements

Native App Integration and User Experience Enhancement

Robust Exception Handling and User Feedback

Development Efficiency and Code Quality

🌱 Problem Solving

iOS Map App Integration Silent Failure