initialize static method

Future<void> initialize({
  1. required String targetPath,
  2. required String projectName,
  3. required String packageId,
  4. required List<String> platforms,
})

템플릿 기반으로 프로젝트 구조 생성

Implementation

static Future<void> initialize({
  required String targetPath,
  required String projectName,
  required String packageId,
  required List<String> platforms,
}) async {
  final logger = Logger();

  try {
    final targetDir = Directory(targetPath);

    if (!targetDir.existsSync()) {
      logger.err('❌ 대상 프로젝트 폴더를 찾을 수 없습니다: $targetPath');
      return;
    }

    // 템플릿 기반으로 프로젝트 구조 생성
    await ProjectTemplateGenerator.generateProject(
      targetPath: targetPath,
      projectName: projectName,
      packageId: packageId,
      platforms: platforms,
      logger: logger,
    );

    // Android 패키지 이름 업데이트
    logger.detail('Android 패키지 이름 업데이트 중...');
    await _updateAndroidPackage(
      targetPath: targetPath,
      packageId: packageId,
      logger: logger,
    );

    // iOS 번들 ID 업데이트
    logger.detail('iOS 번들 ID 업데이트 중...');
    await _updateIOSBundleId(
      targetPath: targetPath,
      packageId: packageId,
      logger: logger,
    );

    logger.success('✅ 프로젝트 초기화 완료');
  } catch (e, stackTrace) {
    logger.err('❌ 프로젝트 초기화 중 오류 발생: $e');
    logger.detail('스택 트레이스: $stackTrace');
    rethrow;
  }
}