Bird
Raised Fist0
Fluttermobile~10 mins

Why local storage enables offline data in Flutter - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to save a string value to local storage using Flutter's SharedPreferences.

Flutter
final prefs = await SharedPreferences.getInstance();
await prefs.setString('username', [1]);
Drag options to blanks, or click blank then click option'
AJohnDoe
B"JohnDoe"
C12345
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to put quotes around the string value.
Passing a variable name without quotes if it's not defined.
2fill in blank
medium

Complete the code to read a string value from local storage using Flutter's SharedPreferences.

Flutter
final prefs = await SharedPreferences.getInstance();
String? username = prefs.[1]('username');
Drag options to blanks, or click blank then click option'
AgetString
Bremove
CsetString
DgetInt
Attempts:
3 left
💡 Hint
Common Mistakes
Using setString instead of getString when reading data.
Using getInt when the stored value is a string.
3fill in blank
hard

Fix the error in the code to check if local storage has a key before reading it.

Flutter
final prefs = await SharedPreferences.getInstance();
if (prefs.[1]('username')) {
  String? username = prefs.getString('username');
}
Drag options to blanks, or click blank then click option'
AhasKey
Bexists
CcheckKey
DcontainsKey
Attempts:
3 left
💡 Hint
Common Mistakes
Using hasKey or exists which do not exist in SharedPreferences.
Trying to read a key without checking if it exists.
4fill in blank
hard

Fill both blanks to save and then read an integer value from local storage.

Flutter
final prefs = await SharedPreferences.getInstance();
await prefs.[1]('counter', 10);
int? counter = prefs.[2]('counter');
Drag options to blanks, or click blank then click option'
AsetInt
BgetString
CgetInt
DsetString
Attempts:
3 left
💡 Hint
Common Mistakes
Using setString or getString for integer values.
Mixing up the order of saving and reading methods.
5fill in blank
hard

Fill both blanks to remove a key from local storage and check if it still exists.

Flutter
final prefs = await SharedPreferences.getInstance();
await prefs.[1]('session');
bool exists = prefs.[2]('session');
print('Session key exists: ' + exists.toString());
Drag options to blanks, or click blank then click option'
Aremove
BcontainsKey
CgetBool
Dclear
Attempts:
3 left
💡 Hint
Common Mistakes
Using clear which deletes all keys instead of remove.
Using getBool to check if a key exists.

Practice

(1/5)
1. Why does local storage enable offline data in mobile apps?
easy
A. Because it requires a constant internet connection to fetch data.
B. Because it only works when the app is online.
C. Because it deletes data when the app is closed.
D. Because it saves data directly on the device, allowing access without internet.

Solution

  1. Step 1: Understand local storage purpose

    Local storage keeps data saved on the device itself, not on the internet.
  2. Step 2: Connect local storage to offline use

    Since data is on the device, the app can access it anytime, even without internet.
  3. Final Answer:

    Because it saves data directly on the device, allowing access without internet. -> Option D
  4. Quick Check:

    Local storage = offline access [OK]
Hint: Local storage means data stays on device, no internet needed [OK]
Common Mistakes:
  • Thinking local storage needs internet
  • Confusing local storage with cloud storage
  • Assuming data is deleted when offline
2. Which Flutter code snippet correctly saves a string value using SharedPreferences for offline use?
easy
A. final prefs = await SharedPreferences.getInstance(); await prefs.setString('key', 'value');
B. SharedPreferences.setString('key', 'value');
C. prefs.saveString('key', 'value');
D. SharedPreferences.getString('key', 'value');

Solution

  1. Step 1: Identify correct SharedPreferences usage

    SharedPreferences requires getting an instance asynchronously before saving data.
  2. Step 2: Check method correctness

    The method to save a string is setString with key and value parameters.
  3. Final Answer:

    final prefs = await SharedPreferences.getInstance(); await prefs.setString('key', 'value'); -> Option A
  4. Quick Check:

    SharedPreferences usage = final prefs = await SharedPreferences.getInstance(); await prefs.setString('key', 'value'); [OK]
Hint: Always await SharedPreferences.getInstance() before saving [OK]
Common Mistakes:
  • Calling setString without getting instance
  • Using wrong method names like saveString
  • Trying to pass two arguments to getString
3. What will this Flutter code print if the device is offline but data was saved locally?
final prefs = await SharedPreferences.getInstance();
String? name = prefs.getString('username');
print(name ?? 'No user');
medium
A. The saved username string
B. null
C. No user
D. Error: No internet connection

Solution

  1. Step 1: Understand SharedPreferences data retrieval

    SharedPreferences reads data stored locally on the device, independent of internet.
  2. Step 2: Analyze code behavior when offline

    Since data was saved before, prefs.getString('username') returns the saved string, not null.
  3. Final Answer:

    The saved username string -> Option A
  4. Quick Check:

    Local data access = saved string [OK]
Hint: Local storage returns saved data even offline [OK]
Common Mistakes:
  • Assuming getString returns null if offline
  • Expecting an error without internet
  • Confusing null and 'No user' output
4. Identify the error in this Flutter code that tries to save data locally:
SharedPreferences prefs;
prefs.setString('token', 'abc123');
medium
A. The key 'token' cannot be a string.
B. SharedPreferences instance is not initialized before use.
C. setString method does not exist in SharedPreferences.
D. You cannot save strings in SharedPreferences.

Solution

  1. Step 1: Check SharedPreferences instance initialization

    The code declares prefs but does not assign an instance using getInstance().
  2. Step 2: Understand consequences of missing initialization

    Without initialization, calling setString causes a runtime error because prefs is null.
  3. Final Answer:

    SharedPreferences instance is not initialized before use. -> Option B
  4. Quick Check:

    Initialize prefs before use [OK]
Hint: Always await SharedPreferences.getInstance() before using prefs [OK]
Common Mistakes:
  • Forgetting to initialize prefs
  • Thinking setString is invalid
  • Believing keys cannot be strings
5. You want your Flutter app to show user data instantly even when offline. Which approach best uses local storage to achieve this?
hard
A. Clear all local data when the app closes to save space.
B. Only fetch user data from the internet every time the app opens.
C. Save user data in SharedPreferences after first online fetch, then read from it when offline.
D. Use local storage only for caching images, not user data.

Solution

  1. Step 1: Understand offline data availability

    To show data offline, it must be saved locally after fetching online once.
  2. Step 2: Choose best local storage use

    SharedPreferences is suitable for small user data; saving after first fetch allows instant offline access.
  3. Final Answer:

    Save user data in SharedPreferences after first online fetch, then read from it when offline. -> Option C
  4. Quick Check:

    Save after fetch = offline access [OK]
Hint: Save data locally after online fetch for offline use [OK]
Common Mistakes:
  • Relying only on internet every time
  • Clearing local data unnecessarily
  • Ignoring local storage for user data
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard