Jump to content

Rollo62

Members
  • Content Count

    1812
  • Joined

  • Last visited

  • Days Won

    23

Everything posted by Rollo62

  1. Rollo62

    Good practices with nested methods

    I would rename one of the var i: integer; to to a distinct variable name "J", to avoid naming issues in the future. Better safe than sorry. Usualy when I use nested functions, they might also work on the above defined variables in the parent method, so that these methods might act as a kind of "helper methods". The drawback is that the common variables act like global variables, so you have to take care about their side-effects. I use this usually only with very short methods, where the behaviour is clear (like Item_Add(const AValue : String); ), to preset repeated settings in one more convenient common method.
  2. Dear all, I'm still upgrading my older projects from 10.3.1 to 10.3.2, and try this as always as sensitive as possible. But it turns out that too many libraries under Android would have been changed. This is my orginal project loaded in 10.3.2 So I'm better off to create a complete new, empty project , and reset all my old values from 10.3.1 step-by-step. In 10.3.2 the libraries looks like this So I try to figure out what would be the best way to make such upgrades, which can be very tricky these days. I know @Uwe Raabe and his ProjectMagician, thanks for that nice tool. There are also OptionSets, MigrationTool, etc., many ways to successfully reset or completely destroy your .dproj files. I want to consider the basic steps here, and hope to get some feedback, how this can be done best (without expecting strange side-effects) in a complex world. Steps to upgrade: Backup your orignal project Create a new, empty multidevice application Remove the Mainform (Unit1) and other from the main form, this will be reset later from the older project. Save and overwrite the Project file to the same .dproj !! Make global settings in Project options\All configurations first, and try to keep minimal changes from there only In later separations of Debug or Release, these changes will be done in the respective configurations later. Adding special libraries, frameworks, etc. needed for the app Adding special ressources/images needed to deploy with the app Setup Search path, version no., bundle identifiers, entitlements, permissions, icons, etc., which shall be global for the whole app Setup special settings, like debug/release store API's, Google maps debug/release API's, etc. in the respective configurations Fixes and workarounds Add the old units and datamodules (I try to minimize these in my projects, so I usually have to add only one main form), and try to restore the old project state Refine and check the settings, and ready to debug, test and deploy This way I evaluated for myself that I have best control over all settings (and there are many which could go wrong in the cross-platform world). Is there probably a better way to automate this process ( ! but please consider that many features might have large incompatibilities from 10.3.1 to 10.3.2), I don't really trust automatisms when it comes to such sensitive data, and when too many changes are there. Do I miss something, is there a more easy "migration tool" out there ? Would be great to hear how you do this usually, and which tools you use.
  3. Rollo62

    Application Loader no longer included in Xcode11

    This probably depends on how Embarcadero will sovle App Bundles on its own (maybe this is on their list already). This would require to modularize the app in different features, do you see 32- and 64-apps as those two different features ? What else would be possible to modularize (assuming that you don't want to build a complete new build-system around RadStudio) ? Maybe you consider also something as in-app purchase of those modules (not sure if App bundles will support that scenario).
  4. Rollo62

    Application Loader no longer included in Xcode11

    @Dave Nottage Thanks for this great cxontribution 👍 To get your plans with Mosco right I want to summarize and ask some more questions: Will Mosco be a 1:1 replacement for PAServer (or is it controlling via existing PAServers) ? Mosco is adding, and ntegrating additional features to current PAServer, like SDK management, logging, notarization, AppStore upload, etc. There will be also a companion IDE expert, as well as companion apps like DeviceLens Are there aslo remote plans to integrate also more platforms, like Android (yes, I know Mosco's name speaks against this) ?
  5. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    Ok, so you do by yourself, you're a very brave man I would prefer to search for some experts repair shops, offering this service, since my nerves lay a little open recently (since I started mobile development). I don't do hardware repair on a daily bases, so I wouldn't trust myself to get everything right after so many years loosing experience.
  6. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    Interesting, how do you upgrade MBP ? I never checked that more deeply, as I expected that only original Apple parts might run perfectly (but at same incredible price). Do you mean that any Apple-Repair shop might be able to upgrade SSD with state-of-the-art technology and size ?
  7. Rollo62

    Report components: good, bad, ugly

    I use HTML Components Library too, and its working flawlessly (considering its a little between HTML4 and 5), but the big advantage for me is that its cross-platform. Also HTML reports are pretty much interchangeable everywhere, you don't need a special reader. Updates come out regularily also Alexander is fixing bugs and even adding some reqested features very fast. I only can recommend these tools.
  8. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    Yes, 40 GB is clean Win10 VM. I had up to 130GB VM in the past as well, but then tried to keep it cleaned up as much as possible. Currently the last years I could reach <= 70 GB (of coarse including also my desired tools like Git. Excel, Gimp, IncSkape, etc.), The larger VM is not really a problem for working, but takes a little longer at start, copy and more space in backup. Thats why I recommend to regularily clean up "C:\" folder (incl. system files), and then clan the VM, shrinking it back. Unfortunately clean and shrink VM doesn't work with Macos images out of the box. Also shrinking disk space doesn't really work well in Macos. It is possible, but needs a lot of fumbling in Terminal and disk utility, so I keep it as is. This is a problem because upgrading needs to enlarge the VM temporarily (like I think last XCode was 15GB), then after install its back to normal. Unfortunately I cannot temporarily give more space and free then. If I need to update I try to clean as much as possible, but last update I needed to increase my VM size as well. But anyway, working from clean VM's is always the option.
  9. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    @PeterPanettone No, its connected via USB3. The cost-benefit relation of Thunderbird is simply unreasonable. I never checked out Parallels, but checked many forums and case.stories some years ago, comparing Parallels to VmWare. Parallels is very good for Macos, indeed. But at that time (and up to now) Parallels and VmWare were on par, no big differences in all tests (as far as I know). So my choice was VmWare then, since I already used it for Windows and felt very convenient, it was a no-brainer. I never regret my choice. The images are usable on both platforms, yes. I've made such tests some years ago, and it was possible to move them around, but I would not bet on this. Also you have to consider CPU and hardware, which probably doesn'T match the new host. For example the Macos image requires special "Apple compatibe" CPU (which means no AMD at all), this can break your compatibility, but that not an VmWare issue. Today I prefer to work on clean VM's, which are pre-configured with my minimum set of tools, and to set up a new VM guest is like copy and paste (by the way copying 40GB copying on a fast SSD can be < 1 min, ony my older systems might take 10-15min).
  10. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    I only can say: VmWare with image on an external FAST SDD (Samsung 'T5 e.g.) works nearly as fast like on internal SSD.
  11. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    Yes, simplistic is the main reason. There are simple things hidden too much and settings are very limited (no expert modes). With Windows I can do anything, its very open and informative. I can get a tool for any topic. Ok, probably you can find that for Mac too somewhere, and you have the Terminal shell. At some steps you HAVE to use Temrinal, to get simple things done (where I would expect a clever installer maybe). Devices are integrated smoothly: YES But there are so little devices available. I cannot even get a USB-C cable in a shop now. Most keyboards, USB-Drived, other adapters do not work out of the box with Macos. They really are not interested in 3rd party support, where Windows is vice-versa. Why the hell do I have Thunderbolt, there are no reasonable or affordable devices available, its a total waste. Also the whole concept of UX, some love it and say its easy, but I think vice-versa again. Hidden windows behind other apps, a lot of flaws which I rarely see in Windows. Windows concepts are much more simple user-friendly and clear IMHO (unfortunately Win10 is on the track of Macos right now). Try to move a file with Finder, this is terrible, there is no clear Cut and past function for files, as far as I know. Try to drop a file in a folder, you never know where it lands. Macos still might have Wifi issues, sometimes broken connections, etc. A well known issues for many years now, probably depend on the router and the settings, but nothing I would like to see in such a machine. One the Pro side: Trackpad is great, 2-finger / 3-finger guestures work smooth, elegant and flawlessly, never seen such perfect bahaviour on Windows. Switching shells by swiping them is a joy to work with multiple VM machines. Display is great. Anyway, for me the Mac acts as host, and I'm running on Windows. For that purpose its OK for me.
  12. Rollo62

    Google Play Store - request extension for Delphi apps

    Yes, they don't say this in the note. But in the dashboard, in some info hint. My app also has no technical issue, it was rejected only because the server is not ready yet (and they wanted to check what I do there). The app itself is running also w/o the server. I think you get such special treatment if you do - In App purchase - Apple Pay wallet - App for childs - Gambiling app - any other critical stuff in those areas there are permantently changing the laws.
  13. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    Yes, I would wait for that too. But not to get it, but because the older models get cheaper. For newest model I would always wait a reasonable time, to find out some possible systematic issues. Apple has a lot of issues in their newest products recently, woth to wait until production is stable. Consider the MacBook form factor stayed same since a century now, but putting more and more chips stuff and power into it. Physics also might have its limits. My older MacBook can went quite hot at certain spots on the housing, this incresed since I guess update to Sierra. Never made any issue, but as I said: You cannot cheat physic laws.
  14. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    I only rationalize this by being able to do Apple iOS / Mac Development, to get back from their also higher rated AppStore. There is no other reason, Macos is really behind Windows IMHO in so many ways (sorry only my opinion as a long trained Windows user). Mostly I miss the openess and the informativeness of the Windows system, not much is hiding behind artificial walls.
  15. Rollo62

    Google Play Store - request extension for Delphi apps

    Probably your app did something wrong. I've got 7 extensions recently, and 1 rejection. But the rejection was because the app was not ready, and the according server was not running. I just wanted to start the process before 01.08.19, and hope that when I resend another version, complete with working server access and all license, disclaimer settings etc. I will get a go. The Google judgement is not only because of 64Bith though.
  16. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    1. thats clearly too much, you shuld look at a different store. Maybe the big price comes from 4TB SSD disk ? 2. buy the last before model, not the latest 3. keyboard is crap, but usable (see many noted in the web) 4. traxckpad is great, although I liked the more small version in older MacBooks (also many notes in the web) 5. Reliablity and quality is high, performance is high 6. Their safety habits suck, they overdue "safety" handling in every place (membership, dev. certificates, shut down devices aft. 3x wrong entry, API), leaving no room for any custom deviation or settings, you have to follow the "Apple way", or you're out 7. I run my last MAcBook Pro still everyday, after 6 years, same speed, same quality. Apple is no normal business, but a religion. https://www.worldreligionnews.com/religion-news/is-apple-a-religion But their high status brokes down a lot recently, when they did big failures in MacBook Pro design, hitting their loyal customers in the face. Also a lot to read about in the web. But nevertheless, MacBook Pro is definitively among the 3 top notebooks, I would guess. Don't worry. Use large and fast SSD disk (I use 2TB, but its terrible expensive) Use large and fast memory (your 32GB should be on the safe side), I use 32GB too, and I'm able to run several VM machines at same time
  17. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    I use VmWare successfully for many years now. Only in one older version I faced some issues, otherwise runs w/o any flaws, support is OK (although not "NOW", I'm used to wait some hours). One main reasin is also that VmWare supports all platforms (Win, Mac, Linux, Cloud), and the VM images are interchangeable. I didn't wanted to fumble around with 2-3 VM parties, but only with one instead. The small differences between the 3 major players in performance or features are acceptable noise IMHO.
  18. Rollo62

    Running the IDE in a VM on Mac Book Pro?

    This is maybe interesting
  19. Dear all, I have a strange behaviour when using Bluetooth LE. In my apps I use the same, well tested BT library in many apps, which works fine so far. Now I have one app that crashes in foreground, with exception "Project TestApp raised an exception class 6." The stack trace shows similar __CRASHING_DUE_TO_PRIVACY_VIOLATION__ message, but the rest is not very helpful. There is no reference to any of my units nor at least anything that could be explaining why this happens. I've tried a lot to re-order and try add/remove several features, but I couldn't receivce any clue from this, the error stays there and is reproduceable. What I've found out so far is that is might be related to the iOS background mode permissions I want to be able to receive data from a before (in foreground) connected device, which would require bluetooth-central usually, but to keep the connection active during background bluetooth-peripheral seems to be necessary too, although I don't use it that way. At least this configuration keeps my data running in background as well, as intended. I use it the following way: app in forground discover IoT devices connect IoT device receive data from the IoT device (every second) so far this works fine app still in foreground the IoT device disconnects the app closes the connection at that point suddenly the crash appears So far when I use the SAME bluetooth library, doing the same things, no crash happens. It seems to be related to the background modes, only when they are defined, then it crashes (also in other apps, not using background mode). There are some infos in the web about __CRASHING_DUE_TO_PRIVACY_VIOLATION__, which seems to have to do with accessing private parts, like photo or other gobd relevant data (at least I could imaging that these requirements could cuase such crash). But I don't really use any of such in my app, nor that I even touch anything during disconnection of an IoT device. What I can see before the crash is an exception in the IDE while debugging: "Project TestApp raised an exception class 6." I have no more ideas howto debug this issue, since this seems to happen deep inside iOS. So far I tried to remove all other relevant aspcets around, but none of them seems to change anything. Enclosed you find a crash report from iOS, the callstack looks similar and never gives any reference to anything I would see relevant. I hope you have some hints or solutions, howto fix this. Edit: Ja, writing a thread is a good way to rethink and find possible reasons This could be the reason of coarse, I will try how thisa flag could be added, since I think its not in the usual version info. Edit2: Yes, this was the reason. After adding these 4 lines in the info.plist.TemplateiOS.xml template file it keeps working. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <%VersionInfoPListKeys%> <%ExtraInfoPListKeys%> <key>NSBluetoothPeripheralUsageDescription</key> <string>The app needs bluetooth access to be able to process data from an IoT device in the background</string> <key>NSBluetoothAlwaysUsageDescription</key> <string>The app needs bluetooth access to be able to process data from an IoT device in the background</string> </dict> </plist> Oh, how I hate these permission crashs, without any notice. Those changes in the template file might get lost when the IDE has to re-create this file, so this is another point of failure, but I'm well aware of this. Would be great if Embarcadero could offer a way to add such additions in the version Now I've got a permission request message like "Bluetooth want to share data with devices around ...", which I have to enable. What is strange, that this doesn't appear at app start, but only when a device disconnects. Another strange thing that I have to re-start an IoT twice now, before it gets detected again, but maybe this is due to my test settings here. I hope somebody has a good explanation and solution to these questions also. Maybe there is a workaround for that, but at the moment I'm happy that the crashes are gone. For the rest I have to do further testing now. I don't understand how Embarcadero get Beacons working in the background, which should basically use the same settings as I do here. Never had checked with beacons, maybe one day in the future, but they are also using only the BLE framework ,as fas as I know. Either all beacons might see same crashes, or Embarcadero made a trick to make them work silently. Maybe sombody has experience with beacons, bluetooth and background modes ? CrashReport.txt
  20. I would like to get back to the original (and related) issues: Its still not 100% clear what the reason is, but as a workaround I found that the follwoing method helps. Simply wait 1-2 sec. after the disconnection of a device and cleaning up the BluetoothLE stack, before restarting the next DiscoverDevices cycle. Seems that iOS needs some time to cleanup internally, and too early restarts might confuse the system. There are different delay times from phone to phone (iPhone 6S differs from iPhone X and needs more time), which makes sense (different CPU, etc.). When discovering is started too early, then I don't see the new device in OnEndDiscoverDevices, in my case I also see this never again no matter how often DeviceDiscover is restarted, and so I will never be able to re-connect again. Only a power down/up cycle the IoT device helped in that case (and I tried may different items from different vendoes, so its not a case of the IoT device). Anyhow, not sure about the real internals, but I'm afraid adding some more time (I had 300ms before) raising to 2000ms will do the job for me at the moment.
  21. Rollo62

    Give TViewport3D a test flight.

    @Gustav Schubert Thanks, good to know. I have seen changes some time ago but I havent really checked the details up to now. Anyway, seeing Apple getting more relaxed is a good thing for developers
  22. Rollo62

    Give TViewport3D a test flight.

    Works well on iPhoneX. Looks interesting, but I haven't checked all details (too much math in the morning is not good for your mood). Be aware that you might have only 100 test devices open for this. How did you set that in the TestFlight , to allow free, unregistered phones ? I always wanted to check that out, but I don't really need this, since I work mostly with some known phones and testers. Is the Apple-limit of 100 testers and 100 phones gone now ?
  23. Usually with such things (also with RadStudio) I prefer to keep "most" default settings, and hope that they will perform best. Why else should they be "default" then ? Only for some well known issues I will of coarse setup differently. Tweaking the last bit out of such systems is a task that needs a lot of test and research, which I am not paid for Another reason: The first thing a service operator during a support call will ask you the following: Have you set up the default settings ? I not, then go home and restart fresh (I do same with my projects ).
  24. 👍 - don't use snapshots at all (they were intended as short time snapshot anyway), I use complete duplicated images instead (about < 1 min on modern SSD) - Keep Windows lean and clean (tidy up temporarily files and system update files regularily) - Clean the VM image regularily ... <to be continued>
  25. Thanks for the proposal. Yes, revert may reset the libraries, but can I really always trust what it does ? So to use the "clean project" approach is probably only a few clicks more, and from there I can be very sure that it will work the way intended. This is only a small part of the whole project configuration, what about the rest ? I don't really like all these "magic" functions in the IDE project management when it turns out that they might have flaws in the end. For example the inheritance of project options (All --> Debug --> Release) never worked out for me to be stable, so I better check and fumble befor every major option setup, to be sure that not suddenly something bad happend there. Maybe there are better solutions to check and compare, e.g. to use export/import options sets, project configurations or the .dproj files directly, and make all global adjustment in the option sets XML or in the .dproj files directly before re-loading and building. I could think of external tools, like the Settings Migration Tool, Project Magician, or others for help keeping the project clean, is there probably any tool or a combination of several tools, that can help in a nice way ? A kind of .dproj DIFF viewer and editor which is able to sort out related settings might be great utility as well.
×