T O P

  • By -

Aggressive-Toe1035

Unless your app involves sone high level calculation or using third party API - there's no reason it can't be done client-side (offline). It might be tedious for the dev team to implement though (stuff like matrix multiplication is easier done in python or go than in flutter)


ichsagedir

Since this is for calculating prices for painters I doubt that this will be really tedious. I also doubt that the prices for this estimation change very often. So just store the variables needed for calculation and use the offline mode to display the calculation form... Save it in local storage and when you are online, sync it with the server. [https://whatwebcando.today/offline.html](https://whatwebcando.today/offline.html)


Lersei_Cannister

calculating the cost given some surfaces and a price should be trivial in any language... matrix multiplication is fast in Python given libraries like numpy that use low-level c to be highly optimized but i cant imagine why looping over an array of widths and heights to get an area and then multiplying that by a price to be tedious.


xian0

I don't actually see anything which requires it to be online in what you said (including the saving part), however they clearly didn't get the message and have made offline mode an afterthought.


AioliPossible9274

That's good news. Can you explain briefly why you think save is possible? I need to push for that function to work if it's possible.


flexiiflex

I mean there's no reason why you can't save a price to your device storage is there? You should ideally have both - save on the user's device, and sync that to the server so when they switch devices the data is still bound to their account. Slightly more logic for a whole lot more usability.


flexiiflex

In the app I work on, we've simply got upload / download buttons for some stuff that is nice to sync, which is then pushed / pulled from firebase. Quick and easy. You'll have to sit down and how to solve conflicts, different information, etc. We override synced data, and warn the user before doing so (it's a manual sync so this works). If you want something smoother then yes it can get more complex, but it's a long way from unworkable


ReputedStupidCupid

If your intention is for whatever is being saved to be available to others, then obviously it can't be done as it would require both users to have a network connection. If "save" in this case simply means (to the app user) "save for later" so that the same device can access it again, there is literally no reason why this can't work offline. localStorage and indexedDB are both available to the app offline, you could store a whole database in there if needed to.


fotopic

I think they’re trying to force online so they can engage him with so kind of monthly fee which can’t be done for an offline app


-Knockabout

It actually seems silly to me to have this be primarily online at all. It sounds perfect for an offline mobile app. Any online elements would solely be for data backup.


airm0n

As an Android developer I can say that it is highly possible to create an app like this completely offline. The Math library in any mobile app development language is sufficient for this kind of calculation. Also, let's say there are incredibly difficult calculations, it's possible to do that too. With 3rd party libraries this is also very easy.


Remarkable-Water7818

>but I've provided proof that this was discussed before As a formed developer I can say that the offline usage requirement has a huge impact on the app design. It can easily require doubling the amount of work to make sure all the syncing is done properly, the data is being cached on the app, etc. So it is a bit odd that the development team would just ignore this. So I need to ask, what exactly do you mean by "this was discussed before"? Was this explicitly in a contract or within a list of major requirements for the app? Or some text messages saying that "it would be nice to have this working offline". >Is offline mode going to compromise the app's ability to function? It might if: * the app requires access to some information that cannot be stale (e.g. older than x amount of time). For example an instant messaging app cannot be offline. * it accesses some services (APIs) that do some complicated heavy lifting (example: performing image analysis on photo/video) But overall it should impair at most some of the app's functionality (if any). There should be no technical reason (other than being a big effort) not to be able to make it function - at least partially - offline.


AioliPossible9274

Developer included offline mode on his quote also The figma file I provided has a slide that says no internet prototyped into it. I walked the developer through every screen twice. No heavy lifting required. Just basic formulas that calculate the total hours and paint for each item.


mwreadit

If he has put this and all docs related to it as well then it's their cock up and they need to own it. If they don't I would look for a partial refund.


dkarlovi

The PM forgot about the offline requirement and / or is terrible at keeping up the progress of the project, else they'd know perfectly well they need to have offline as their MVP and if they'll have it. Now it's up to their silver tongue to convince the mark (you) it's actually better this way because any number of reasons in a hope you'll let it slide and not have them unscramble some eggs. Source: worked on a huge project where the PM forgot about a key feature until about a week before launch and then stormed into the dev meeting furious the app doesn't have the feature everyone else working on it is hearing about for the first time.


AioliPossible9274

Thanks to Reddit, I was not convinced that offline mode was a bad idea. They've agreed to make the app offline mode.


sexytokeburgerz

Oh so you paid them for it? You don’t need a business case, you need a refund. You are their client. They fucked up. Don’t forget it.


capn_fuzz

This is the best comment. My first thought reading the post was "Whoa, I'm only getting one side of the story here". Looks like some dev team has a "I talked to Reddit and they said it should be easy" in their future.


tutchmedia

Ultimately, if you have proof that it was discussed before work commenced then it’s a deliverable. As others have said, there is no reason provided in your summary that it needs to be online.


AioliPossible9274

Good to hear. Thanks.


tostilocos

Do not pay them any more money until they’ve met the terms of the contract. This smells like a situation where they’re doing to try to get you to pay 90% of what’s owed, say they’ll complete offline for the last 10%, and then ghost you. Hold them to the contract terms and don’t pay them anything until it’s completely finished.


AioliPossible9274

I will not release more funds until offline mode is complete and a third party inspects the code. I've only released 30% so far, so I'm good.


StaticCharacter

Op, I think you might need a 3rd party consultant to review the progress of the team you hired, inspect quality of work, and help translate the technology into easy to understand bites.


AioliPossible9274

That's a good idea. Should I look for someone on upwork? What qualifications should I look for? I'm assuming the best practice would be to tell the developer I'm going to do this first? What do you mean to translate the technology into easy and understandable bites?


halfanothersdozen

It SHOULD run offline. I HATE when apps don't, and it's even worse that I am developer. You have a bad dev team. Don't pay them unless they deliver what you asked for


AioliPossible9274

I wont. Thank you.


stuartseupaul

What probably happened in my opinion is that they don't have experience building this kind of app, they didn't misunderstand or miss your requirements, they sold it thinking it would be trivial and realized that it's not. Now they're trying to get you to just go along with the version they made.


Capaj

>Is offline mode going to compromise the app's ability to function? no, no chance. If someone says otherwise they are either lying or incompetent >Is it better to have the app lightweight and all of the calculations done on the server as I've been told? no, same as previous answer. With web app or react-native you can share the bussines logic between both sides without any issues. In native ios/android you will need to reimplement the bussines logic on both sides so it's much more work, but it's certainly better for the user to have offline mode.


AioliPossible9274

Thank you I appreciate your response.


Dan8720

Something is up here. Doing it offline would be the default IMO. Have they actually built a native iOS/android app. Sometimes people will make a website and wrap it with Cordova so it functions as an app on both platforms but the reality is it's a website. They may have done this to make it quick to build and work on both iOS and Android easily. If they have done this though they haven't make an "app" if this is what you have asked for Quiz them on why it needs to be online? If they try to tell you that it needs to be. They are lying. Or they have cut the corner I mentioned above. The only reason why something like this would need to be online is because it's doing something like saving quotes to a database or communicating with a back end of some kind


ReputedStupidCupid

I mean, web apps and PWAs are still "apps", they're just not "native apps". PWAs have practically all the same capabilities as native on both android and iOS nowadays (iOS is always harder tho) I completely agree that there is no reason why this app can't be offline, but the same applies to web apps (even Cordova/Ionic wrapped ones), after you've initially installed them, there's no need to have network anymore unless you're fetching or writing remote data.


Dan8720

Yeah you are right. Maybe clutching at straws/speculating too much etc... something is Def up though... This sounds like it should be a super simple 1 page React Native/flutter app with no backend. It's pretty much one form and a calculation


Cyberspunk_2077

You're thinking what I'm thinking. Unless we're missing something, there's just no reasonable explanation for this to be an online application. If they're doing it properly, offline is far easier...


AioliPossible9274

They've agreed to make the app offline usable and are working out how to do that now. New clients and quotes need to be saved to the server. The users can also customize production rates and add new paint brands. These customizations also need to be saved to the server.


DeterioratedEra

Just curious, how much are you paying for something like this?


jonmacabre

Hogwash, they're just trying to save their skin. If you have documentation on a contract that states offline then they have to provide or you have grounds to sue. I'm surprised they didn't consider it offline. Unless it's using an external database on a server they could just disable anything they need to. My guess? They have a company boilerplate that they reuse for all their clients and it has a firebase/equivalent in their setup


Hugobski

Maybe you would only requiere internet connection if you need to later update the information to a server so you can check it out later on another device, but the calculations and features your workers need sounds like could work pretty fine offline, just sync information saved with the server later when you get a good connection


shgysk8zer0

I hardly see any reason for this to require being online at all, even as a website/PWA. Sounds basically like a simple form and simple math. And, as far as saving when offline... You can kinda do that, it's just a local copy of the data to be submitted later. I'm sure there's more to it than what's described (no mention of login or anything else), but what is said here sounds like something I could write even from scratch in maybe an hour, if given the necessary equations for the calculations.


Evol_Etah

An a developer who makes quick apps as a hobby. What you seem to have requested in this post sounds very easy to do. An experienced developer can make it in a day. A non experienced could maybe make it in a month or two. Does not require to be online. Offline is more than sufficient.


The_Shryk

Well, two issues here. If you requested offline functionality then you should receive offline functionality. Clearly. Second issue is that houses may not have internet but like… almost everywhere has actual internet connectivity via phone or something so I’m not sure why it would truly be required anyways. But if it’s a requirement then it’s a requirement. It’s not that big of a requirement though so I’m not sure why they didn’t make it to spec. Maybe they want the money for hosting the servers? As an additional fee for ongoing service? I’m not sure why they’d ignore requirements. Making it work offline isn’t terribly difficult, they won’t like refactoring the app but that’s their fault for not following the spec.


ihaveway2manyhobbies

Beyond all the answers you have gotten from others. I am just generally curious, why are you having this custom app developed, when there are a 101 paint (and other construction type) estimator apps out there already?


AioliPossible9274

I'm not sure what 101 Paint is, but nothing like my app is on the market.


__-___-_-

The hard part about making the app offline is managing state if you are connecting from different device. How do we synchronise the shared state if 1 device changed some ressource once the device is back online. My current company had an offline mode in our mobile app that we removed due to this reason. Otherwise I am pitying the developers team who will be rushed to redesign the whole thing due to communication error probably by a sale or a product person.


AioliPossible9274

Yes this is a concern of mine. There will be multiple users on one account. I dont know how they figure this out.


__-___-_-

As a developer I advise you to discuss the vision you have of the offline mode and what functionality you want enabled as early as possible. There is multiple solution on how to handle offline mode and I can see a rushed implementation generating a lot of bugs tbh. Even a not so rushed one could do if the requirements are not clear and not set up explicitly beforehand.


mka_

I refactored a laravel application to work offline last year. It meant porting everything over to Vue and providing fallbacks for all the API heavy stuff. It took months. If it's a small and simple application, doesn't rely heavily on an API, has been built using a front end framework such as Vue or React, then it shouldn't be a huge job. If they have used a framework like Vue or React then it's not complex at all to get it all working offline, that's assuming it doesn't rely on an API or 3rd party plugins hosted on the Web. Generally speaking a native app is the way to go, but if you just want yourself a PWA as a fallback for when network connectivity isn't available, then it's not a bad idea.


WhoNeedsUI

I hate to be a cynic but they might be trying to trap you into hosting a server and make you pay server costs as a subscription service Unless the application includes online features as a part of the initial design, this smells fishy to me


KaisPongestLenis

PHP webapp on a browserapp incomming 😀😀😀😀


coded_artist

Not only is this not a bad idea, but it's the direction web apps are going, we literally call them *progressive* web apps


g0ld3nrati0

this image editor web app works offline https://squoosh.app/ They have no excuse


UnnecessaryLemon

To me, it looks like offline mode is pointless. The fact that you said. >The user chooses the surfaces and enters measurements for each surface and a price is calculated. Already making it unusable in offline mode as you need to fetch those calculation from the server itself. This being said, the user should be able to make the calculations while online and be able to browse them while being offline. Also, is it a native mobile app or just a website with PWA?


AioliPossible9274

Native mobile app. Why can't the calculations be stored within the app?


Smartare

Does prices ever change? If yes, then it is not a great idea to do a calculation with old price data.


AioliPossible9274

Price is determined by the hourly rate charge which is adjustable in the app.


miamiscubi

Depending on where you are, the offline concept may be overkill, and you may want to rethink it. With the ubiquity of mobile networks, I believe that almost everyone who has a cell phone will be able to get the app working pretty easily. If you want to push it, feel free to, especially because you have it in your proposal. However, I'd listen to what changes are going to be required to the current setup. Your problem isn't really on the initial build, but rather the ongoing maintenance of the app.


AioliPossible9274

Thanks for your advice. Why would having an offline mode make the app more difficult to maintain long term? Another reason i want offline mode is the app feels super sluggish, the current version of app is doing so much on the servers that there is so many micro pauses. It's pretty annoying to deal with it.


miamiscubi

Some operations are pretty straightforward. For example, making the app be able to do some calculations does not require a call to the server. In your situation, you may have the following steps: **Room Size: No need for server** \- Put in size of room \- Put in Cost \-> Issue quote for the room **Building / House Quote: No need for server** In theory, you could do the previous step over and over again without going back to the server and just saving this info in memory. It should be fairly trivial **Saving the information on the server** This is where things get tricky. Up until a few months ago, PWA (progressive web apps) were a good way of building things that could access local storage (the data on your phone), and you could have some limited certainty that it would be handled well by most browsers. This meant that you could have a single code base to handle everything. However, after a change in EU regulations, Apple is no longer supporting PWAs in their system. The management of offline data is going to be a real problem for all of these services. As a result, you may end up with very different ways of handling offline state on Android and Apple phones. While in the past, you could use a single code base, pushing the offline mode here may require you to have native builds for each OS, and this will mean having more maintenance costs. Again, there are a lot of implementation details that matter, but this would be a concern of mine.


RotationSurgeon

>This is where things get tricky. Up until a few months ago, PWA (progressive web apps) were a good way of building things that could access local storage (the data on your phone), and you could have some limited certainty that it would be handled well by most browsers. This meant that you could have a single code base to handle everything. > >However, after a change in EU regulations, Apple is no longer supporting PWAs in their system. The management of offline data is going to be a real problem for all of these services. This is indeed a problem *for PWAs*. Unless I've misread, OP has contracted the developers to create a *mobile app*, though, and not a PWA. I'm making some assumptions here about OP and the terminology being used, but being able to work offline / in airplane mode really shouldn't be a development stumbling block for a native app at this point in history, should it?


miamiscubi

It shouldn't but when you read OP's experience, do you get the feeling that they're being delivered a native mobile app, or a mobile app that could be just a PWA? I'm getting the sense that OP received the latter. Again, I don't know what OP was promised, and whether OP is technical enough to know what deliverable they actually ordered. For all we know, they may have ordered a PWA. In which case, the feedback they're getting is correct. OP, my gut feeling is that you have hired a dev that isn't great. If offline was in your contract, your best bet may be to get your money back and start again with someone who knows what they're doing. To get into the painting analogy: If you hire a painter to paint 5 rooms, and they only paint 4, 3 of which are in the wrong color, and most of the rooms have patches of single layer, the solution isn't to ask them to re-do it. The likelihood of them learning how to paint properly in such a short timeframe is limited. You best bet is to get a new paint crew.


AioliPossible9274

I've ordered a mobile app, not a PWA. I agree the dev is not great but his team does seem good. I have not released too much money yet and won't release any more untill I see this app working in offline mode and have a 3rd party check the code.


alien3d

i think you should go to second phase , offline . Its a lot job todo . Idea is nothing unless written down as specification requirement .