GSoC Proposal Questions

Hello,

I am very interested in creating iOS versions of Android components for MIT App Inventor. I am writing a proposal for a 175-hour GSoC project on this topic and would like to ask some questions regarding it:

  1. I want to work on components with some unimplemented features (ListView and File). Also, I would like to develop LightSensor, ProximitySensor, and Barometer components. Do you think that this can make up a good project in terms of benefits for MIT App Inventor?

  2. I noticed that there is a pull request by the former GSoC participant Dhruv Shrivastava where he implemented some of the ProximitySensor and Barometer features. Is it better to use his code as a foundation or start developing these components from scratch?

  3. While browsing through GSoC successful proposals for MIT App Inventor, I saw that their duration was 12 weeks. Is it possible for my project to last a little longer (13 weeks)?

Thank you :slight_smile:

Hello. Although I'm not the right person to talk about GSoC, I'm glad there's someone programming for iOS who wants to improve ListView. I've opened a PR for ListView improvements, but for Android. I think if someone created similar new features for iOS, it would be implemented faster.

Thanks for your reply, I am glad to hear your opinion :slightly_smiling_face: I've also already created a PR where I added some missing functionalities to iOS ListView (Search and SelectionColor property). I hope to receive feedback and continue contributing to MIT App Inventor because I really like this project :heart:

1 Like

Great. I see that ListView on the iOS side requires a lot more work than on the Android side. Look at my PR and the list of modifications. Is anything from this list impossible to implement on the IOS side?

Everything seems possible except for the SearchHintText property. There are no native ways to do this in UIKit.

While reading through the Conversation section of your PR, I noticed that there was a misconception regarding the absence of the possibility to implement the BounceEdgeEffect property for iOS. If I understood correctly, this is the bouncing effect when the user reaches the end of the scrollable ListView.

Actually, there is a Boolean property called "bounces" for this purpose which is available starting from iOS 2.0 and true by default. I've tried to enable/disable it for iOS ListView and it works fine :+1:

1 Like

And this solution?

This is a hint for a UITextField. iOS ListView in MIT App inventor code does not have it. It consists of a UISearchBar, UITableView and UITableViewCells.

So for iOS they used the native SearchBar, while for Android they used a regular TextView instead of SearchView... so in my opinion it would be a good idea to implement TextField instead of SearchBar in iOS and adapt it to search, unless this is not possible.

I found it:

var placeholder: String?

The string to display when there’s no other text in the text field.

It is true that by extending the UISearchBar you can get more options, but I think that the basic functionality is enough.

By default, an English hint is placed in the search field, which is a problem for some people who create an application in another language. There have been many reports of this problem, so it would be nice to be able to change this text. This will only be implemented when we get such a feature in iOS. Maybe I would try my hand at Swift, but I don't even have the right devices to test it.

I could help you to test this if you really want to deal with it. I just feel that as a developer, I should look at the problem in terms of the efficient allocation of resources. There are many more crucial functionalities missing in App Inventor's iOS ListView. It would be more reasonable for me to add them for starters. After that, I could try dealing with this particular issue too.

By the way, I appreciate that you care about the iOS part as much as for Android one and I am grateful to you for not giving up when trying to find a solution :slight_smile:

There is a PR for this on iOS:

1 Like