PromptBase
Close icon
General
Home
Marketplace
Hire
Create
Login
Sell
Explore
🌀 Claude

Android Studio Developer

Android Studio Developer claude prompt mini thumbnail
9Eye icon
Views
CLAUDE-3-5-SONNET
TestedTick icon
TipsTick icon
4 examplesTick icon
Your personal Kotlin, Jetpack Compose, and XML Layouts copilot and project generator, with a focus on responsive, beautiful, and scalable apps. Write clean code and become a much faster developer.
...more
$5.99
Get prompt
After purchasing, you will gain access to the prompt file which you can use with Claude or the app builder. You'll receive 20 free generation credits with this purchase. By purchasing this prompt, you agree to our terms of service.
2 weeks ago
Related item

Prompt Details

Model
(claude-3-5-sonnet)
Token size
2,009
Example input
[Task]: Develop Personal Finance Tracker App base on: Description: An app that helps users manage their expenses, create budgets, and track savings goals. Features: Record daily expenses with categorization. Visualize financial data using charts and graphs. Sync data to the cloud for multi-device access. Include reminders for bill payments and savings goals. Target Audience: Individuals looking to improve financial habits.
Example output
I'll create a comprehensive Personal Finance Tracker app. Let's break it down into key components. 1. First, let's create the data models: ```java // Transaction.java public class Transaction { private String id; private double amount; private String category; private String description; private long date; private String type; // INCOME or EXPENSE private String userId; public Transaction() { // Required for Firebase } public Transaction(double amount, String category, String description, String type) { this.id = UUID.randomUUID().toString(); this.amount = amount; this.category = category; this.description = description; this.date = System.currentTimeMillis(); this.type = type; } // Getters and setters } // Budget.java public class Budget { private String id; private String category; private double limit; private double spent; private String period; // MONTHLY or WEEKLY private String userId; // Constructor and getters/setters } // SavingsGoal.java public class SavingsGoal { private String id; private String name; private double targetAmount; private double currentAmount; private long targetDate; private String userId; // Constructor and getters/setters } ``` 2. Create the main activity with bottom navigation: ```xml <!-- activity_main.xml --> <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.fragment.app.FragmentContainerView android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/bottom_navigation" app:defaultNavHost="true" app:navGraph="@navigation/nav_graph" /> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:menu="@menu/bottom_nav_menu" /> </androidx.constraintlayout.widget.ConstraintLayout> ``` 3. Create the Dashboard Fragment: ```java public class DashboardFragment extends Fragment { private PieChart expenseChart; private LineChart balanceChart; private RecyclerView recentTransactionsView; private TransactionsAdapter adapter; private FirebaseFirestore db; private String userId; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_dashboard, container, false); initializeViews(view); setupCharts(); loadTransactions(); return view; } private void setupCharts() { // Setup Pie Chart expenseChart.setUsePercentValues(true); expenseChart.getDescription().setEnabled(false); expenseChart.setDrawHoleEnabled(true); expenseChart.setHoleColor(Color.WHITE); expenseChart.setTransparentCircleRadius(61f); // Setup Line Chart balanceChart.getDescription().setEnabled(false); balanceChart.setDrawGridBackground(false); balanceChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); balanceChart.getAxisRight().setEnabled(false); } private void loadTransactions() { db.collection("transactions") .whereEqualTo("userId", userId) .orderBy("date", Query.Direction.DESCENDING) .limit(10) .addSnapshotListener((value, error) -> { if (error != null) { showError("Error loading transactions"); return; } List<Transaction> transactions = new ArrayList<>(); for (QueryDocumentSnapshot doc : value) { transactions.add(doc.toObject(Transaction.class)); } updateDashboard(transactions); }); } private void updateDashboard(List<Transaction> transactions) { updatePieChart(transactions); updateLineChart(transactions); adapter.setTransactions(transactions); } } ``` 4. Create the Add Transaction Dialog: ```java public class AddTransactionDialog extends BottomSheetDialogFragment { private EditText amountEdit, descriptionEdit; private Spinner categorySpinner; private RadioGroup typeGroup; private Button saveButton; private FirebaseFirestore db; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_add_transaction, container, false); initializeViews(view); setupSpinner(); saveButton.setOnClickListener(v -> saveTransaction()); return view; } private void saveTransaction() { String amount = amountEdit.getText().toString(); String description = descriptionEdit.getText().toString(); String category = categorySpinner.getSelectedItem().toString(); String type = typeGroup.getCheckedRadioButtonId() == R.id.radio_expense ? "EXPENSE" : "INCOME"; if (!validateInput(amount, description)) { return; } Transaction transaction = new Transaction( Double.parseDouble(amount), category, description, type ); db.collection("transactions") .add(transaction) .addOnSuccessListener(documentReference -> dismiss()) .addOnFailureListener(e -> showError("Failed to save transaction")); } } ``` 5. Create the Budget Management Fragment: ```java public class BudgetFragment extends Fragment { private RecyclerView budgetList; private BudgetAdapter adapter; private FirebaseFirestore db; private FloatingActionButton addBudgetFab; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_budget, container, false); initializeViews(view); loadBudgets(); addBudgetFab.setOnClickListener(v -> showAddBudgetDialog()); return view; } private void loadBudgets() { db.collection("budgets") .whereEqualTo("userId", FirebaseAuth.getInstance().getCurrentUser().getUid()) .addSnapshotListener((value, error) -> { if (error != null) { showError("Error loading budgets"); return; } List<Budget> budgets = new ArrayList<>(); for (QueryDocumentSnapshot doc : value) { budgets.add(doc.toObject(Budget.class)); } adapter.setBudgets(budgets); }); } } ``` 6. Create the Savings Goals Fragment: ```java public class SavingsGoalsFragment extends Fragment { private RecyclerView goalsList; private SavingsGoalAdapter adapter; private FirebaseFirestore db; private FloatingActionButton addGoalFab; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_savings_goals, container, false); initializeViews(view); loadSavingsGoals(); addGoalFab.setOnClickListener(v -> showAddGoalDialog()); return view; } private void loadSavingsGoals() { db.collection("savings_goals") .whereEqualTo("userId", FirebaseAuth.getInstance().getCurrentUser().getUid()) .addSnapshotListener((value, error) -> { if (error != null) { showError("Error loading savings goals"); return; } List<SavingsGoal> goals = new ArrayList<>(); for (QueryDocumentSnapshot doc : value) { goals.add(doc.toObject(SavingsGoal.class)); } adapter.setGoals(goals); }); } } ``` 7. Add notification service for bill reminders: ```java public class ReminderService extends Service { private static final int NOTIFICATION_ID = 1001; private FirebaseFirestore db; private Handler handler; private static final long CHECK_INTERVAL = TimeUnit.HOURS.toMillis(24); @Override public int onStartCommand(Intent intent, int flags, int startId) { handler = new Handler(); startPeriodicCheck(); return START_STICKY; } private void startPeriodicCheck() { handler.postDelayed(new Runnable() { @Override public void run() { checkUpcomingBills(); handler.postDelayed(this, CHECK_INTERVAL); } }, CHECK_INTERVAL); } private void checkUpcomingBills() { // Check for upcoming bills and create notifications } } ``` To complete the app, you'll need: 1. Add Firebase dependencies: ```gradle dependencies { implementation 'com.google.firebase:firebase-firestore:24.0.0' implementation 'com.google.firebase:firebase-auth:21.0.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' implementation 'com.google.android.material:material:1.5.0' } ``` 2. Set up Firebase Authentication and Firestore rules: ```javascript rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null && request.auth.uid == resource.data.userId; } } } ``` Would you like me to explain any specific part of the implementation or provide additional features?
Browse Marketplace