stepstead-client/native/README.md
jts 6a1706051d İlk commit: Stepstead Godot istemci (4.6 Mobile)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 11:31:35 +03:00

3.3 KiB
Raw Permalink Blame History

Stepstead — Pedometer Native Eklentiler

Adım sayar soyutlaması autoload/pedometer.gd içinde. Native plugin yoksa otomatik simülasyon moduna düşer (editör/masaüstü test). Gerçek cihazda adım okumak için aşağıdaki native eklentiler derlenip projeye eklenmeli.

GDScript ↔ native sözleşmesi (her iki platform aynı):

Metot Dönüş ıklama
is_available() bool Cihazda adım sayar sensörü var mı
start() void Dinlemeyi başlat
stop() void Dinlemeyi durdur
get_step_count() int ılıştan beri kümülatif adım

Singleton adları: Android = StepCounter, iOS = Pedometer.


Android (stepcounter-android/) — Mac'te derleme

Gereksinim: Mac + Android Studio (Android SDK API 34 + JDK 17) + Godot 4.6.

Gradle projesi hazır: settings.gradle, build.gradle, gradle.properties, wrapper config (gradle/wrapper/gradle-wrapper.properties → Gradle 8.5). Eksik tek şey wrapper binary'si ve godot-lib — aşağıda.

1. Android Build Template'i kur (godot-lib.aar için)

Godot editöründe projeyi aç → Project > Install Android Build Template. Bu, proje köküne android/build/ oluşturur. Godot kütüphanesini bul:

find android/build -iname "godot-lib*.aar"
# örn: android/build/libs/release/godot-lib.template_release.aar

Bu AAR'ı plugin libs/ içine kopyala:

mkdir -p native/stepcounter-android/libs
cp android/build/libs/release/godot-lib.*.aar native/stepcounter-android/libs/

2. SDK yolunu bildir

cd native/stepcounter-android
echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties

3. Gradle wrapper'ı üret + derle

Android Studio'da klasörü açarsan wrapper'ı otomatik üretir. CLI ile:

# Homebrew gradle ile tek seferlik wrapper üret (sonra ./gradlew yeter)
brew install gradle        # yoksa
gradle wrapper --gradle-version 8.5
./gradlew assembleRelease

4. AAR'ı projeye koy + etkinleştir

cp build/outputs/aar/stepcounter-release.aar \
   ../../addons/stepcounter/stepcounter-release.aar

Godot: Project > Project Settings > Plugins > StepCounter = Enable. Android export'unda Use Gradle Buildık olmalı.

İzin: ACTIVITY_RECOGNITION (Android 10+). Export plugin manifest'e ekler, pedometer.gd çalışma zamanında OS.request_permission(...) ile ister.

Not: libs/, local.properties, .gradle/, build/ ve wrapper jar'ı repoya girmez (bkz .gitignore).


iOS (pedometer-ios/) — yazıldı

CMPedometer (CoreMotion) Objective-C++ plugin. Singleton Pedometer, aynı 4 metot. Kaynak + .gdip config + build/iPhone yükleme adımları: pedometer-ios/README.md.

CMPedometer iOS Simulator'da çalışmaz → iPhone 13 ile gerçek cihaz testi. Derleme godot-ios-plugins harness (scons) ile, Xcode'da imzalı yüklenir.


Test (native plugin olmadan)

Editör/masaüstünde HUD'daki +100 butonu Pedometer.sim_add(100) çağırır, ardından /world/sync-steps ile sunucuya gider. Sunucu dakika-başı tavan (anti-cheat) uygular; aşan adımlar reddedilir ve step_log'a accepted=false olarak yazılır.