Páginas

Mostrando las entradas con la etiqueta xamarin.ios. Mostrar todas las entradas
Mostrando las entradas con la etiqueta xamarin.ios. Mostrar todas las entradas

Xamarin iOS - apply gradient background to status bar and navigation bar

Here you have a running sample on  how to apply gradient background to status bar and navigation bar to Xamarin iOS https://github.com/vackup/StatusBarGradientBackground/



Info used:
How can I create a horizontal gradient background for my iOS nav bar?
http://stackoverflow.com/a/31901915/580229

Using Background Image in Navigation Bar
https://www.appcoda.com/customize-navigation-status-bar-ios-7/

How to programmatically get iOS status bar height
http://stackoverflow.com/a/16598350/580229

Configure Xamarin.iOs build on TFS


Build agent

First of all, you need to install the cross platform build and release agent for Team Services and Team Foundation Server 2015 and beyond on a mac.

I think the easiest way to do that is to you MacInACloud service (https://support.macincloud.com/support/solutions/articles/8000016614-getting-started-with-the-macincloud-vsts-build-agent-plan) but if you don't want to pay for the service and have a Mac, you must install it there.

Install Prequisites

First, ensure you have the necessary OSX (macOs) system prequisites (https://github.com/Microsoft/vsts-agent/blob/master/docs/start/envosx.md) - basically OpenSSL, Git and other stuff. You will need BREW (http://brew.sh/), so visit Brew website for install instructions

Installing OpenSLL, if the following lines doesn't work, check the installed version and use it instead of 1.0.0

ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib

Deploy an agent on OSX

After installing all prequisites, you need to install the agent.


You must configure it and run it (don't forget to run it LOL), pretty straightforward.

If everything is OK you shoul see you Build Agent is green, if it is red, then something went wrong

image

Creating the build

Now you have go to your TFS and create a new Xamarin.iOS. To create it follow these instructions https://www.visualstudio.com/docs/build/apps/mobile/xamarin

Troubleshooting

If you have any issues, visit these url for troubleshooting info:

Can't connect to TFS when configuring the agent

User permissions

If you face issues with user permissions:
  1. Creation issues: To create the agent, the user must be part of "Agent Queue Administrator"
  2. Execution issues "Tfs2015 Build agent error: Access denied: xxxxx\yyyyy needs Listen permissions for pool zzzzz to perform the action": To run the agent, the user must be part of "Agent Queue Users" and not "Agent Queue Administrator". This is the (http://www.codewrecks.com/blog/index.php/2015/05/09/tfs2015-build-agent-error-access-denied-xxxxxyyyyy-needs-listen-permissions-for-pool-zzzzz-to-perform-the-action/)
  3. Can't select a build queue during build definition - TFS 2015 Build’s Queue is Empty: your user doesn't have permissions to execute the queue and needs to be part of "Agent Queue Users" (https://lajak.wordpress.com/2016/03/24/fix-tfs-2015-builds-queue-is-empty/)
  4. I use Team Foundation Server on-premises and I don't see some of these features. Why not? Some of these features are available only on Visual Studio Team Services and not yet available on-premises. Some features are available on-premises if you have upgraded to the latest version of TFS. Check the available features on each version here https://www.visualstudio.com/de-de/docs/build/define/build (eg: at the time of writting this post "Xamarin component restore" is only available on Team Services)

iOS Backgrounding and Updating an Application in the Background


iOS Backgrounding with Tasks

Run tasks that don't have to die when app enters background
  • Creating Background-Safe Task: You can use this pattern anywhere in your application where you don't want a task being interrupted should the user put the app into the background. A great candidate for this pattern would be tasks such as sending a new user's registration information to your server, or verifying login information. 
https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/ios_backgrounding_with_tasks/#background_tasks_in_ios7

Updating an Application in the Background

Update the app at regular intervals
  • Region Monitoring and Significant Location Changes Service 
  • Background Fetch 
https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/#background_fetch

iOS Backgrounding Guidance

Refer to the following diagram to choose a backgrounding technique
https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_5_ios_backgrounding_guidance/

iOs7


Multi Platform implementation (Xamarin.Form)

Using Messanger
http://arteksoftware.com/backgrounding-with-xamarin-forms/ 

Xamarin.iOs Unified API - Methods missing in NSUrlConnectionDelegate

I had the same problem as described here http://forums.xamarin.com/discussion/31355/methods-missing-in-nsurlconnectiondelegate, I was in the middle of migrating my app hypstr (www.hypstrapp.com) to the Unified API.

The problem occurs with the NSUrlRequest, which requires an instance of INSUrlConnectionDelegate, where prior to the Unified API I was using NSUrlConnectionDelegate.

Udating my library to Unified API a couple of methods I was using before are missing. Namely ReceivedData(NSUrlConnection, NSData) and FinishedLoading(NSUrlConnection).

The solution is here  https://github.com/Cheesebaron/Cheesebaron.MvxPlugins/commit/8e57a7cb53f8ec575ad9c48e478e7ab44bcb93a0#diff-d0b47785af23a5a11abceed2acd46b00R131, you should now inherite form NSUrlConnectionDataDelegate instead of NSUrlConnectionDelegate

And that's all :)

ENJOY