Disconnecting FB – impact on Development

So, as I am working on disconnecting my FB account, one of the things that I will have to do is remove FB integration from one of my apps. This requires a new release of WastedTime – to be released soon. I will also have to get my Podcast and other integrations to be either a) done by someone else, or b) lose that method of promotion. Will be interesting to see the impact… Will probably take a few weeks to get this all setup. More to Come!

Squashed crashes

Wooohoooo.. some times when struggling with a programming bug, you just need to step away for a while.  Then, when you come back, re-read the error messages from the crash – hopefully a light will come on in the brain.  This morning, while editing this week’s episode of the GamesAtWork.Biz podcast, did a little work on the latest ALPHA code of my new app. Low and behold! The light when on in the brain, and the crashes are now gone.  Testers of the app should now be able to add new recipients, delete those recipients, add new events, delete those events, and add recipients with events, and delete them all at once.  I think now, it’s time to start working a little more on integrating picking an address from your address book, and then – I can make it look good.  Exciting times!

Privacy and Personalization

The other morning I was sitting at my favorite coffee shop, having a discussion with one of my morning friends, on the kind of data your phone collects on you. As we talked thru my traditional soapbox of why I choose iOS over Android, they mentioned the experience of having an ad pop up in their Facebook feed from a local yoga instructor that they talked with just a few days earlier. They had not “friended” or “Linked” or “Followed” that person, but had just had a simple impromptu conversation with them one morning over coffee. I suggested that perhaps they were in the perfect target market for an ad to this Yoga studio. And that given the amount of data that facebook can track from being on your phone, it could have done a simple Venn diagram of the fact that both of them had been in close proximity recently, and met certain demographic characteristics.

Many of the tech pundits that I listen to are starting to remove Apps from their mobile phones, as these apps have much more access to data from your phone than most people realize. I had wanted to find out how powerful some of this ancillary data can be, and so, I recently updated an app that I am working on to add Facebook integration. That integration now allows me to get non-personally identifiable data about how my app is used: where on the global, what time of the day, for how long, and by many different demographic slices. Still pretty innocuous data, but realize that is my view of the data, not Facebook’s view of the data. Also, realize that my app does not require you to log into facebook to get this data. If you did log in, you are now personally identifiable. Again, imagine this for every app that you use that has facebook integration. And extended that data to all the people who use Facebook. The view of the world and the power of social networks note becomes exponentially more evident.

The bigger issue to privacy is that most people will log in to Facebook, and not think twice about allowing it access to their contacts – to find more friends. That data is now in the network, even if you try to never use, visit, or interact with facebook, you will have a profile being built, based on your “friends”.

A few years ago, Apple integrated Twitter and Facebook as system level APIs to enable better social sharing of information. This has been removed in iOS 11. I believe that this is directly related to Apple’s privacy policy. At the system level, these services would have had much more access to information about the user, that they may not have now. This continues to be in contrast to Android, which the phone manufacturer automatically grants Google access to your data as part of their licensing agreement (I hope this changes and if it has – would someone help me find that proof). I continue to refuse to use Android for that reason, and yes, it has an adverse impact on the ability for Siri and other personalization services on iOS to be as affective as Android.

Do you think the trade off is worth it?

One Crash Down – Two To Go

Well, I finally figured out what is going on with one of my crashes.. and can now allow people to delete Recipients with no cards sent.

Years ago a friend told me a story about someone interviewing for a job as a database programmer.  The interviewer asked them how they would handle a programming request to delete an open accounts receivable account.  The interviewee stated they would pop up a window asking “Are you sure?”  The interviewer repeated the question saying, “what if they hit ‘Yes’?”.  The interviewee stated they would pop up another window asking “Are you sure?”  At which point there interviewer said, “what if they said yes, to every ‘Are you Sure’ window you could pop up?”  At this point the interviewee said, “I would pop up a window asking for their banking information, so we could charge their account to cover the amount in the receivable account.”  At this point the interviewer stated, “Yes, you understand referential integrity”.

This appears to be what Core Data is telling me in my crash.  But I can’t figure out why my delete is not replicating down to all the events, and deleting them.  So my next approach is trying to delete the events, one at a time in the list events view.  Unfortunately, this is crashing too.. so more to learn here… but progress… As soon as I can fix both of these crashes, I plan on creating a view to show the details of an existing event.

First Public Demo

Had my first public demo of my Alpha level app last night. And I now have a timeframe. I will strive to make the app finished and done by Late October. The app is a simple idea, but I keep learning more and more things to make it valuable.

I am creating a App that will allow someone to keep track of the cards that they are sending people. While more and more people are using electronic cards, or no cards at all, just think of all the Hallmark stores that are closing, I still find it a wonderful surprise when I open the mail box, and find a nice greeting card in it. There are tons of holidays and events that warrant a card, and keeping track of which ones you sent to which person, can be a time consuming issue.

My new app will hopefully make it much easier to keep track of who you sent what card to. Lots more to come.

Making Progress

As of last night, the new Alpha code, allows the users to create new records, and new related records, without crashing!! Now that’s progress. Next I need to create the delete function on the main screen, and add in the correct displaying of created related records. This requires a new screen to display the chosen Event information, that shouldn’t be hard, and will allow me to validate that the image store function is working correctly. The good news is that testers are finding some display issues between running the app on different types of screens. Evidently on the iPhone X the auto sizing of the fonts is not behaving as expected… hope to get some time to work on these next weekend!

Progress!!

Debugging Core Data

One of the reasons I’ve toyed with the new app for so long (the idea is about 5 years old), has been that I am struggling to learn Core Data. Not only that, but I’ve been dealing with a ton of day job activities, etc. So I am finally getting this app started. The basic idea behind the application is a header->detail line database challenge, back when I did DB programming this would have been called an invoice problem. In this case, we have from 0 to infinite headers (each one a unique record), and each header can have from 0 to infinite detailed records.

In Core data you would define your entities with Header having a one to many relationship to Detail. And that relationship would be optional, since you could have 0 detailed entities. Right now the application does a good job of showing you a list of the headers, and allowing you to add new headers. My early builds (the ones were I didn’t define the detail records) even let you go back and do a detail view of the headers.

Now when I go to the header views, it crashes while trying to give you a UITableView of the detailed records. Obviously I am not handling Detail records correctly. I’ve been told that these records are an NSSet and should be converted to an Array for UITableView handling. So my current guess is I am not handling an empty Array correctly. I am guessing I need to set it to NIL in the ViewController and then assign data to it in the TableView functions. (I will try that this weekend).

My second crash is when I try to allow a user to delete the Header records. I was able to do this originally, so somehow in my refactoring of the app to add the detail records, I must have screwed something up. I hope to fix this one quickly.

Now the reason I called this post “Debugging Core Data” is because the crashes don’t seem to provide me with a lot of insights, in to what the crash really is, but I find if I try and explain a programming problem I have to someone, I tend to work it out. Let’s hope this worked!

A new alpha

Refactoring an app and a database at the same time, can lead to some interesting bugs. So today, I restructured my app. The good news is that the flow is more in line where I think I want it. THe bad news is, while I have enabled swipe to delete, it crashes the Alpha (after it deletes). I also have a new Add and View Recipient screen. The Add Event screen, while there, has some issues with getting all the data, and right now, it still doesn’t save the event. (That will happen, I hope next weekend).

Given all the other things I have to do tomorrrow, I won’t have another TestFlight until next week, but I am posting this one. I hope my testers provide “some” feedback.

Rehearsal And Programming

I am currently rehearsing for my favorite Light Opera – Ruddigore by Gilbert & Sullivan. Rehearsing is a lot of hard work. You have to learn the “rules” (blocking, lyrics, dancing, notes, and dialog). You have to practice these rules over and over until you can do them without thinking. And then magic happens, and you start performing. Performing allows you to interpret the rules and put a piece of your heart and soul into the final product – the Show! The becomes the experience that others get to have, based on all your hard work.

At the same time, I am working on building a new iOS application. In order to do this one right, I am having to learn new things (core date, swift 4, dealing with new APIs like the camera, TestFlight for testing, etc.) Once I have this down, I will improve the design, making it much more engaging – even if now it is a very rudimentary experience. Magic happens once I can get it all working without thinking. I hope the outcome of this app, will be just as engaging as Ruddigore!

What are those things that you love doing, that take a lot of hard work, and that you can never truly master?

Alpha App to do list

For my testers.. thank you for your testing….

As of now, I don’t have a real name for the app, nor any real artwork.. but I do have a list of things to do:

Fixed delete bug

Fixed address display bug.

Note right now you can only “save” the contact information.

I am working on the next part which will do the following:

1) Save the pictures (front and back)

2) create a UITableView of the prior cards, which will include Date, Event, Pictures

3) allow for a delete function on the main view by doing a slide over to delete

4) on the detailed screeen (#2) will add two buttons – add new Card, and Edit Contact information

5) Ultimately will want to create a picker to allow you to pick the contact from your existing Apple Contacts