Too many files

I want to build a weight training app that has a page for each of 5 sets of 50 exercises (250 pages).

Each set will also require input and storage of the weight and reps done for the set.

Is there a way to minimize the number of files?

Do these “pages” look similar? Same content structure, same functionality? I would definitely try to save the actual content and of course input into a kind of data storage and just load each page into one generalized page.

1 Like

Hello,
My answer might be a little blunt, but a basic Ionic app makes around 2/3 MB to download. The main size in your application made with ionic, is about images files, and database. If you use a good database engine, for example, a single client record with 10 fields is no more than 10Kb.
So, the number of files is a bit relative, to the volume of users you expect both on the image (file size) and database size (where you store user data).

Hope it helped to give you a better idea on size and costs,

No, pull them from a database in a single page. If I understand correctly, you’re making all the pages and content manually and not serving it per-request. That’s the old way of programming and is really bad. You should definitely look into databases and database requests.

Nah, because you forget about dynamic local storage. On a good coded app, you reduce half of the needed storage and online requests by using your smartphone local storage (the old temp folder on linux, mac, windows). And this temporary folder only upload to online services at some time frame, with listeners (Ionic uses tons of them, for example, and can do a lot of this work in the background).

1 Like

Thank you for taking the time to try to help me with this. I have started to look into Firebase. Do you think this is the right way to go?

At this point I know so little about app development it is embarrassing. I still have to reach the level of self-taught. I bought a number of books and online courses, but they all seem too simplistic compared to what I am trying to do. Of the resources I found, only Joshua Morony goes beyond demonstrating and into some teaching.

I don’t think you need a remote database at all. Just use Ionic Storage and store the pages in a “pages” key there. (List or object of pages). Super simple.

Francois,

Thanks for your answer. I am so occupied with learning, I haven’t thought about a business model.

I am a retired engineer amateur who wants to develop the workout app for personal use, a few friends, and hopefully sell enough to recover my learning and app costs. Turns out I really like app development.

APPs look like a very competitive market where high quality products sell for ridiculously low prices. A fitness journal I bought cost $17 – an app that does much more is either free or less than $5.

Of course I think everyone who does weight training should want my app, but I do not really expect much.

Thanks for trying to help me.

Frank

Jan,

Thank you for your help.

The pages only vary in:

  1.  Displaying weight and reps range goals for the set (retrieve from storage)
    
  2.  Displaying the weight and reps used this set last workout (retrieve from storage)
    
  3.  A section to input the weight and reps actually used this set, this workout (save to storage)
    
  4.  A button to proceed to the next set
    

Please see attached screen shots. I think I need to eliminate the separate input page and cover its content on the exercise set page.

I am a retired engineer, amateur developer who has not yet learned enough to claim “self-taught”. I just started looking into Firebase.

Thanks again for your help. Any guidance regarding what I need to learn to complete this project would be appreciated.

Frank

image

image

Can you describe the “workflow” of your app a bit?

The first screenshot looks like a simple “output different images and texts for different exercises”, correct?
The second one is the tracking part? Where will these results be shown? Is there a calendar view or something like that?

My thought are that the goals input will overwrite existing goals data and the new data will be displayed in the first screenshot.
The weight and reps today would be permanently stored with the date. This data will be retrieved and displayed when the History button is clicked.

You are correct. there will be different images and texts for different exercises.

Ok, so there are “instructions”, “goals” and “history”. (Let’s just define these words so we talk about the same things.)

Goals and history are similar, but history is saved per date and goal is just a global setting.
Both goals and history belong to 1 “instruction”, every instruction has its own goal and history.
Correct?

Are instructions always structure the same way, e.g. 1 title, 1 picture and some text below? Or are these more complicated?

Are instructions one big list or are there categories, groupings or similar?

Interface for Goal and History is the same - wight + reps - for all instructions?

Jan,

I think this short background will make what I am doing clearer. If an exercise is done in 5 sets of 8 that means it is performed 8 time (reps) followed by a short rest then the 8 reps and rest are repeated 4 more times (4 more sets).

The instructions (page for each set) is always structured the same:

  1. Title (exercise name)

  2. Name of the muscle the exercise targets and a button to display instructions for performance of the exercise

  3. Start and finish images for the exercise (no associated text)

  4. Display of the goals for this set of this exercise (could be different weights and reps for each set)

  5. Display of the weight and reps completed the last time this set of this exercise was done

  6. User inputs for this set (were on a separate page – the second screenshot)

    a. Actual weight used this time (see 5 above)
    b. Actual reps completed this time (see 5 above)
    c. New weight goal next time this set of this exercise is performed (see 4 above)
    d. New minimum and maximum reps goals next time this set of this exercise is performed (see 4 above)
    e. A button to add and see all notes for this exercise

  7. A button to display the weight and reps history for all sets of this exercise (from inputs 6.a and 6.b above with date added)

Fifty or more exercises are divided into 10 groups such as Chest List, Back List, Biceps List, etc.

All user inputs are weights and rep numbers.

I hope this clear, I am only beginning to understand developer speak.

Thanks for any guidance you can give me – I am willing to do whatever work it takes to complete this app.

Frank

If I were you I would start to develop the app only with the “output” part:
Show the groups with all there exercises. Then you can tap them to get to the detail view where 1) - 3) are displayed. For this you don’t even need any database at all (not Firebase, not Ionic Storage) and can just put it all into files - 50 files is a lot, but manageable.

When this works, you can try to get this into a database or storage and reduce it to 2 pages: One for the list and one for the details. Both the list and the details are loaded from the database dynamically.

Then, when this also works, you can start with forms and save data to the individual exercises. Start with the “goal” because there is only one for each exercise.

After that, you know your way around and can add the actual tracking part pretty easily.

Thank you!!

Frank

1 Like

Random compliment, it looks great.

1 Like

After taking a little time to read your app workflow I agree with @Sujan12 , you can use only local storage fine. But I guess at much later stage, the goal of this kind of app is to compare your “performance” with friends, family, so on.