Teknoloji

Android Fitness Programı Nasıl Yapılır ?

Android Fitness Programı Nasıl Yapılır ?

Biz Java olarak örneklendirdik siz isterseniz kodları flutter , kotlin gibi diğer dillere çevirebilirsiniz.

Fitness uygulaması, kullanıcıların antrenmanları takip etmelerine, egzersiz yapmalarına ve ilerlemelerini izlemelerine olanak tanır. Bu uygulama, kullanıcıların bir antrenman programını seçmelerine, egzersiz yapmalarına, ilerlemelerini kaydetmelerine ve hatta sosyal etkileşimde bulunmalarına olanak tanır.

Adım 1: Proje Oluşturma

İlk adım olarak Android Studio’da yeni bir proje oluşturalım. Yeni proje oluşturma sihirbazı ile “FitnessUygulamam” gibi bir proje adı verip devam edebiliriz.

Adım 2: Kullanıcı Arayüzü Tasarımı

İlk önce, kullanıcı arayüzünü tasarlayalım. Bu, kullanıcıların uygulamayı kullanırken gördükleri şeydir. Örneğin, ana ekran, egzersiz listesi, antrenman detayları vb.

activity_main.xml:

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>

<!– Ana ekran tasarımı buraya gelecek –>

</RelativeLayout>

Adım 3: Veritabanı Tasarımı

Veritabanı, kullanıcıların egzersizleri ve ilerlemelerini saklamak için kullanılacaktır. SQLite veritabanını kullanarak bir veritabanı şeması oluşturalım.

Veritabanı Şeması:

CREATE TABLE Exercises (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
description TEXT,
image_url TEXT
);

CREATE TABLE WorkoutLogs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
exercise_id INTEGER,
date TEXT,
sets INTEGER,
reps INTEGER,
weight INTEGER,
FOREIGN KEY (exercise_id) REFERENCES Exercises(id)
);

Adım 4: Java Kodları

Şimdi, kullanıcı arayüzü ile etkileşime girecek Java kodlarını yazalım.

MainActivity.java:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Arayüz öğeleri ve etkileşimleri buraya eklenecek
}
}

Adım 5: Veritabanı Etkileşimi

Veritabanı ile etkileşim kurmak için SQLiteOpenHelper sınıfını kullanacağız.

DatabaseHelper.java:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “fitness.db”;
private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
// Veritabanı tablolarını oluşturma sorguları burada
db.execSQL(“CREATE TABLE Exercises (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, description TEXT, image_url TEXT)”);
db.execSQL(“CREATE TABLE WorkoutLogs (id INTEGER PRIMARY KEY AUTOINCREMENT, exercise_id INTEGER, date TEXT, sets INTEGER, reps INTEGER, weight INTEGER, FOREIGN KEY (exercise_id) REFERENCES Exercises(id))”);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Veritabanı güncelleme işlemleri burada yapılacak (şu an için basitçe tabloları yeniden oluşturuyoruz)
db.execSQL(“DROP TABLE IF EXISTS Exercises”);
db.execSQL(“DROP TABLE IF EXISTS WorkoutLogs”);
onCreate(db);
}
}

Bu adımları takip ederek, bir fitness uygulamasının temellerini oluşturmuş olduk. Daha sonra, kullanıcıların egzersizleri seçebilecekleri, antrenmanlarını kaydedebilecekleri ve ilerlemelerini izleyebilecekleri özellikleri eklemeye devam edebilirsiniz. Uygulamayı geliştirirken, kullanıcı deneyimini geliştirmek ve uygulamanın performansını artırmak için düzenli olarak test etmeyi unutmayın.

 

Şuan program temel olarak hazır. Peki Egzersiz seçme ve bu egzersizleri yaptıkça diğer egzersize geçiş olarak ne yapabilir nasıl yapabiliriz ?

Şimdi uygulamamıza kullanıcıya ilk üç egzersizi seçtirecek ve her birini tamamladığında bir sonraki egzersize geçirecek bir özellik ekleyelim.

Adım 1: Egzersizleri Listeleme

Öncelikle, kullanıcıya ilk üç egzersizi seçtirelim. Bunun için, bir RecyclerView kullanarak egzersizleri listeliyor olacağız. Bu örnekte, basit bir listeleme yapacağız.

activity_main.xml:

<androidx.recyclerview.widget.RecyclerView
android:id=”@+id/exerciseRecyclerView”
android:layout_width=”match_parent”
android:layout_height=”match_parent” />

ExerciseAdapter.java:

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;

public class ExerciseAdapter extends RecyclerView.Adapter<ExerciseAdapter.ExerciseViewHolder> {

private List<String> exercises;

public ExerciseAdapter(List<String> exercises) {
this.exercises = exercises;
}

@NonNull
@Override
public ExerciseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
return new ExerciseViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ExerciseViewHolder holder, int position) {
String exercise = exercises.get(position);
holder.bind(exercise);
}

@Override
public int getItemCount() {
return exercises.size();
}

static class ExerciseViewHolder extends RecyclerView.ViewHolder {
private TextView textView;

public ExerciseViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(android.R.id.text1);
}

public void bind(String exercise) {
textView.setText(exercise);
}
}
}

MainActivity.java:

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private RecyclerView exerciseRecyclerView;
private List<String> exercises = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

exerciseRecyclerView = findViewById(R.id.exerciseRecyclerView);
exerciseRecyclerView.setLayoutManager(new LinearLayoutManager(this));

// Egzersizleri ekle
exercises.add(“Squat”);
exercises.add(“Push-up”);
exercises.add(“Crunch”);

ExerciseAdapter adapter = new ExerciseAdapter(exercises);
exerciseRecyclerView.setAdapter(adapter);
}
}

Bu kodlarla, uygulamamız ilk açıldığında kullanıcıya Squat, Push-up ve Crunch egzersizlerini listeleyecek.

Adım 2: Egzersiz Tamamlama ve Geçiş

Şimdi, kullanıcının her bir egzersizi tamamladığında bir sonraki egzersize geçmesini sağlayalım.

ExerciseAdapter.java’ya Eklenen Kodlar:

private OnExerciseClickListener listener;

public interface OnExerciseClickListener {
void onExerciseClick(int position);
}

public void setOnExerciseClickListener(OnExerciseClickListener listener) {
this.listener = listener;
}

@Override
public void onBindViewHolder(@NonNull ExerciseViewHolder holder, int position) {
String exercise = exercises.get(position);
holder.bind(exercise);

holder.itemView.setOnClickListener(view -> {
if (listener != null) {
listener.onExerciseClick(position);
}
});
}

MainActivity.java’da Güncellenen Kodlar:

adapter.setOnExerciseClickListener(position -> {
// Kullanıcı egzersizi tamamladığında, bir sonraki egzersize geç
if (position < exercises.size() – 1) {
exerciseRecyclerView.smoothScrollToPosition(position + 1);
} else {
// Kullanıcı son egzersizi tamamladığında bir mesaj göster
Toast.makeText(MainActivity.this, “Tebrikler! Tüm egzersizleri tamamladınız.”, Toast.LENGTH_SHORT).show();
}
});

Bu değişikliklerle, kullanıcı her bir egzersizi tamamladığında bir sonraki egzersize geçecektir. Son egzersiz tamamlandığında bir mesaj gösterilecektir.

Bu adımları takip ederek, kullanıcının egzersizleri seçip tamamladığı ve her birini tamamladığında bir sonrakine geçtiği bir fitness uygulaması geliştirdik. Daha fazla özellik eklemek için bu temel yapıyı kullanarak devam edebilirsiniz.

 

 

Bir yanıt yazın