Android Question Building a calendar-scheduler application

Scotter

Active Member
Licensed User
I want to build a scheduler/calendar app for Android. Bonus if I can do it with B4X for later translation to iOS.
By "scheduler" I mean an application with a calendar view (NOT reliant on or using established calendar application like Google Calendar).
I want to be able to create an event with title, description, date, time, category, recurring info, etc.

A search of this forum brought up https://www.b4x.com/android/forum/threads/calendar-library.12495/ but that is so old I'm wary of using it.

Other search brought up some standalone calendars that don't seem to have scheduling or they are also old.

Ideas? I'm lazy so the more I can find that is already built, the better!
 

MarcoRome

Expert
Licensed User
Longtime User
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
A photo of the calendar you are looking for?

I have planned the following view for this year:
AS CalendarView
*Just example images
1641999382288.png
1641999446621.png

Views:
  • Month View
  • 2 Weeks
  • Week
  • 3 Days
  • 1 Day
Currently, I have only written a rough plan.
The view will also not be free, because as with the ASCalendarAdvanced the effort is enormous, in creating and updating.

Let me know if this is a view you need
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
Will it be cross-platform?
have I published anything that is not B4X in the last few years?
Will you also sell the source (B4XLib?)
I sell only the key to unzip the .zip archive, modify etc. you can do, but do not pass the source code, after all I sell already below value.
Its name is a bit "demeaning" (I mean that the View is much more than a calendar)
It's a calendar, what else could it be?
 
Upvote 0

LucaMs

Expert
Licensed User
Longtime User
have I published anything that is not B4X in the last few years?
I'm sorry, I don't know, I'm not an Alexander Stolte historian :)


I sell only the key to unzip the .zip archive, modify etc. you can do, but do not pass the source code, after all I sell already below value.
The aim would be to be able to customize it, if "necessary", of course.



It's a calendar, what else could it be?
There are so many calendars; that would be mostly useful as scheduler.
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
Upvote 0

Scotter

Active Member
Licensed User
@Alexander Stolte This may be what I'm looking for. Some questions:
- Following your conversation above, I'm still not 100% clear: Would I get source code I can modify or have to rely on you if I need something outside of the provided settings?
- I also want to buy the source code so I can learn.
- Definitely happy to pay you for your work!
- I hear you that you have so far only made a plan and mockups. How long do you anticipate it being before you complete?
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
- Following your conversation above, I'm still not 100% clear: Would I get source code I can modify or have to rely on you if I need something outside of the provided settings?
You get the key to open the .ZIP archive where the .B4X-Lib is inside, which also contains the source code, so you have control over the code at any time.
I also want to buy the source code so I can learn.
is included in the .B4X-Lib
I hear you that you have so far only made a plan and mockups. How long do you anticipate it being before you complete?
4 weeks if there are problems, 3 if everything works out so far when I start next week, since I unfortunately don't do B4X full time yet.
 
Upvote 0

Scotter

Active Member
Licensed User
You get the key to open the .ZIP archive where the .B4X-Lib is inside, which also contains the source code, so you have control over the code at any time.

is included in the .B4X-Lib

4 weeks if there are problems, 3 if everything works out so far when I start next week, since I unfortunately don't do B4X full time yet.
Thank you! I will follow you on here and wait. Do you have a rough estimate of how much USD $ you would charge for the full package? I see you are asking $8 donation for the view part. You know what I mean by full package, yes? Being able to schedule events, notifications, and categories?
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
Being able to schedule events, notifications, and categories?
That sounds like a full app.

With the AS Scheduler you will be able to add appointments that go for 1 or more days as shown in the pictures above.
How the user adds them with a dialog or otherwise is your responsibility. The view will have click events.

notifications, and categories
What do you mean by that?
 
Upvote 0

Scotter

Active Member
Licensed User
@Alexander Stolte Thanks for asking.
I'm picturing a calendar view. Ability to "Add (or edit) Event" and that Event having following properties:
- Day & Time of Event beginning. Optional Day & Time of Event ending. (Looks like you have this).
- Add notifications like: notify me X minutes or hours or days before event.
- Categorize this event as business, social, high priority, etc.
And yep I'm building that "full app" and looking for ways to make this build more efficient by "not reinventing the wheel".
So happy to pay for your hard work that will save me much time!
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
The basic framework is in place (Month View), now the whole logic has to be implemented. I am still undecided how to save the appointments. My 1st consideration was a map, since this is faster than a normal list. My 2nd consideration is to put on SQLite, that has the advantage that the data is not in RAM and I can control the queries smart and you do not have to refill the scheduler every time the app was closed.

6H2XRImvvaA8NkaDGfyBaC1dRmM1zixDMaB3cE5OLM7lmrSKxI.png

Lazy loading works great.

And I try to do more with B4XCanvas, all the lines are not panels, but drawn with B4XCanvas
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
Little update of the progress.
-Appointments are stored in a SQLite db
-Everything you see on the picture was loaded from the db and added
aLdmpxqLQjrBtySJgyPJH8hzxqcPEwFN6VxET1oblgP1YlAOC5.png

A lot of work is still to come, the Month view is only one of many display possibilities. I am curious where the project is in a week.
 
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
Update of the progress :)

The month view is almost finished, I just have to get the endless scroll into the past, because the index of the items changes there, it doesn't run as smooth as the endless scroll into the future, where just items are appended behind. B4J special handling, like Mouse Hover.

If those two things work, then I'll start the DayView, which will be more complex since 2 ListViews are needed. (Horizontal and Vertical)
99nPz42tSB98JaYIvDd51GH5E0epaEQm8HUuiHRZw7mWbwmXwq.png

Features that are already implemented:
  • Appointments Same Day
  • Appointments Range of Days
  • If too many Appointments on one day, then you see a count of hidden appoinments
    • You can click on this and you get the list of apppointments
  • Number of Weeks
    • The number of weeks that are seen, you can set variable
    • on mobile 1-5 weeks are optimal
    • Default: 5
  • Week Number
  • Blackout Days
    • Disable interactions for certain dates in the month view
  • Selected Date Color
  • Recurring Appointments
    • Day
    • Week
    • Month
    • Year
    • Duration = several days possible
    • Recurring appointments are calculated, there is only one record that is marked as recurring
  • Events
    • DayClick
    • DayLongClick
    • AppointmentClick
    • AppointmentLongClick
    • HiddenAppointmentClick
    • HiddenAppointmentLongClick
Thinks ToDo:
  • Endless Scroll Past
  • B4J Special Handling
  • Theming
    • Quickly switch between dark and light mode
I have divided the project into modules, that means:
  • ASScheduler_MonthView
    • Tile overview of the whole month
    • can display 1-5 weeks on the cell phone, if there is more space, you can also display 8 weeks
  • ASScheduler_DayView
    • Overview of a day with time
    • Can display 1 day or 7 days side by side
    • scroll left or right to go to the future or the past
  • ASScheduler_[Secret (not included on release)]View
  • ASScheduler_[Secret (not included on release)]View
  • ASScheduler_[Secret (not included on release)]View
  • ASSchedulerInternShared
    • Here are functions that I share internally between the views
  • ASSchedulerUtils
    • Here are functions that have to do with time calculations e.g. NumberOfWeeksBetween, GetWeekNumberStartingFromMonday
    • Or types for the appointments
      • ASScheduler_Appointment
      • ASScheduler_Blackout
  • ASSchedulerAPI
    • Here is the interface between calendar and SQLite database
    • e.g.
      • CreateAppointment
      • UpdateAppointment
        • Updates an appointment via the ID
      • GetAppointment
        • Get an appointment via the ID
      • GetAppointments
        • Get a list of appointments via DateTime
If there are things that still need to be included that have not yet been mentioned, then write them :)
Greetings
Alex
 
Upvote 0
Top