How Sketchware Auto-Generates Custom Variables for Components
Short version: When you add a component (UI or non-UI) in Sketchware, it automatically creates a matching custom variable in the generated Java code so you can use the component in your logic.
What happens when you add a component
Sketchware generates a Java field that matches the component type and name. That field is the custom variable you access from blocks or Java code. This works for both visual UI elements (Buttons, TextViews, WebViews) and non-visual components (MediaPlayer, Timer, Firebase instances, etc.).
Examples
Here are some typical automatic variable declarations Sketchware will create:
// UI component example
private Button button1;
// Non-UI component example
private MediaPlayer mp1;
// WebView example
private WebView webview1;
Auto-generated variable table
| Component Type | Example Name | Auto-Generated Variable |
|---|---|---|
| Button (UI) | button1 | private Button button1; |
| MediaPlayer (non-UI) | mp1 | private MediaPlayer mp1; |
| WebView (UI) | webview1 | private WebView webview1; |
| RequestNetwork / Firebase | net / auth | private RequestNetwork net; / private FirebaseAuth auth; |
What Sketchware also does
- Initializes component variables where appropriate (Sketchware-generated code will include initialization in lifecycle methods).
- Updates names automatically — if you rename the component in the designer, the variable name in generated code updates accordingly.
- Keeps the variable visibility typically
privateby default (safe practice).
Add your own custom variables when you need extra state or data that is not a component, for example counters, ArrayLists, configuration objects, or global/static constants.
Sample: Mix of auto-generated and manual variables
public class MainActivity extends Activity {
// Auto-generated by Sketchware when you add a Button called "sendButton"
private Button sendButton;
// Manual custom variables you add
private int uploadCount = 0;
private ArrayList imagePaths = new ArrayList<>();
public static String APP_VERSION = "1.0.0";
}
Tips
- Use private for component variables unless you intentionally need to access them from other classes.
- For shared counters or constants use
public staticorprivate static finalfor compile-time constants. - If you add a component and it appears missing in code, use the designer to confirm the component id/name and rebuild the project.
- Drag component to designer → Sketchware adds a variable.
- Rename in designer → variable name updates.
- Need custom logic/state? Add manual custom variables.
Want a ready-made list of manual custom variables (public/private/protected/static) to paste into your Sketchware project? I can generate that as text you can copy into your activity—just say “Yes”.