feat: ios mobil arayüz tasarımı

This commit is contained in:
2026-02-11 18:06:35 +03:00
parent 69884db0ab
commit 261b2f58cc
42 changed files with 2501 additions and 0 deletions

80
ios/create_xcodeproj.rb Normal file
View File

@@ -0,0 +1,80 @@
require 'xcodeproj'
require 'fileutils'
root = File.expand_path(__dir__)
project_path = File.join(root, 'Bookibra.xcodeproj')
FileUtils.rm_rf(project_path)
project = Xcodeproj::Project.new(project_path)
target = project.new_target(:application, 'Bookibra', :ios, '17.0')
project.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5.9'
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'com.bookibra.ios'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0'
config.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2'
config.build_settings['CODE_SIGN_STYLE'] = 'Automatic'
config.build_settings['MARKETING_VERSION'] = '1.0'
config.build_settings['CURRENT_PROJECT_VERSION'] = '1'
end
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5.9'
config.build_settings['INFOPLIST_FILE'] = 'Bookibra/Resources/Info.plist'
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'com.bookibra.ios'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0'
config.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2'
config.build_settings['ASSETCATALOG_COMPILER_APPICON_NAME'] = 'AppIcon'
config.build_settings['GENERATE_INFOPLIST_FILE'] = 'NO'
config.build_settings['SWIFT_EMIT_LOC_STRINGS'] = 'YES'
config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = ['$(inherited)', '@executable_path/Frameworks']
end
# xcconfig mapping
config_map = {
'Debug' => 'Bookibra/Resources/Debug.xcconfig',
'Release' => 'Bookibra/Resources/Release.xcconfig'
}
project.build_configurations.each do |cfg|
path = config_map[cfg.name]
next unless path
cfg.base_configuration_reference = project.files.find { |f| f.path == path } || project.main_group.new_file(path)
end
target.build_configurations.each do |cfg|
path = config_map[cfg.name]
next unless path
cfg.base_configuration_reference = project.files.find { |f| f.path == path } || project.main_group.new_file(path)
end
main = project.main_group
bookibra_group = main.new_group('Bookibra', 'Bookibra')
# Source files
swift_files = Dir.glob(File.join(root, 'Bookibra', '**', '*.swift')).sort
swift_files.each do |abs|
rel = abs.sub(root + '/', '')
ref = bookibra_group.new_file(rel.sub('Bookibra/', ''))
target.source_build_phase.add_file_reference(ref)
end
# Resource files/directories (only top-level bundles, no nested xcassets internals)
resource_paths = [
'Bookibra/Resources/Assets.xcassets',
'Bookibra/Resources/en.lproj/Localizable.strings',
'Bookibra/Resources/tr.lproj/Localizable.strings',
'Bookibra/Resources/mock_book_remote.json'
]
resource_paths.each do |rel|
ref = bookibra_group.new_file(rel.sub('Bookibra/', ''))
target.resources_build_phase.add_file_reference(ref)
end
# Frameworks
frameworks_group = main['Frameworks'] || main.new_group('Frameworks')
['AVFoundation.framework', 'VisionKit.framework', 'SwiftData.framework'].each do |framework|
ref = frameworks_group.new_file("System/Library/Frameworks/#{framework}")
target.frameworks_build_phase.add_file_reference(ref)
end
project.save
puts "Created #{project_path}"