The document discusses the Objective-C runtime and how it manages classes, methods, and memory behind the scenes in Objective-C and Swift applications. It provides an overview of common runtime functions like looking up classes and selectors, storing associated objects, accessing ivars and properties, enumerating classes and methods. It also discusses more advanced runtime services like adding and replacing methods, forwarding invocations, changing an object's class, and creating new classes. Examples are given of how often typical iOS apps use various runtime functions.
Advanced Scala reflection & runtime meta-programming. The Scala compiler toolbox. Reading Scala Annotations and overcoming type erasure with some real world use cases.
This is the fifth session in android course that started with java syntax. This presentation have many topics like ( Nested Classes in Java, Lambda Expressions, Multithreading, Socket Programming.)
Advanced Scala reflection & runtime meta-programming. The Scala compiler toolbox. Reading Scala Annotations and overcoming type erasure with some real world use cases.
This is the fifth session in android course that started with java syntax. This presentation have many topics like ( Nested Classes in Java, Lambda Expressions, Multithreading, Socket Programming.)
OOPS in java | Super and this Keyword | Memory Management in java | pacakages...Sagar Verma
OOPS and its application in Java, Super class AND This Keyword,Java Bean, POJO ,Memory management in Java ,Packages ,Miscellaneous (Var-Args, toString(), Double equals operator(==))
Java Class 6 | Java Class 6 |Threads in Java| Applets | Swing GUI | JDBC | Ac...Sagar Verma
16. Threads in Java
Non-Threaded Applications
Threaded Applications
Process based multitasking Vs Thread based multitasking
Thread API in Java
Creating Threads
States of a Thread
Synchronization for threads; static and non-static synchronized methods; blocks; concept of object and class locks
Coordination between threads - wait, notify and notifyAll methods for inter-thread communication
17. Applets
What are applets?
Need for Applets
Different ways of running an applet program
Applet API hierarchy
Life Cycle of an applet
Even Handlers for applets, mouse events, click events
18. Swing GUI
Introduction to AWT
Introduction to Swing GUI
Advantages of Swing over AWT
Swing API
Swing GUI Components
Event Handlers for Swing
Sample Calculator application using Swing GUI and Swing Event handling
19. JDBC
What is JDBC; introduction
JDBC features
JDBC Drivers
Setting up a database and creating a schema
Writing JDBC code to connect to DB
CRUD Operations with JDBC
Statement types in JDBC
Types of Rowset, ResultSet in JDBC
20. Access Modifiers in Java
What are access modifiers?
Default
Protected
Private
Public
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...Sagar Verma
Collection Framework in Java,Generics,Input-Output in Java,Serialization,Inner Classes
Collection Framework in Java
The Collections Framework - Set Interface- List Interface - Map Interface - Queue Interface -Sorting collections using utility methods
equals () and hash Code contract in Java collections
Overriding equals and hash Code methods in Java
Generics
Generics for Collections, class and methods
Input-Output in Java
What is a stream? ,Bytes vs. Characters, Java IO API ,Reading a file; writing to a file using various APIs
Reading User input from console , PrintWriter Class
Serialization
Object Serialization , Serializable Interface , De-Serializable
Inner Classes
Inner Classes ,Member Classes, Local Classes, Anonymous Classes, Static Nested Classes
OOPS in java | Super and this Keyword | Memory Management in java | pacakages...Sagar Verma
OOPS and its application in Java, Super class AND This Keyword,Java Bean, POJO ,Memory management in Java ,Packages ,Miscellaneous (Var-Args, toString(), Double equals operator(==))
Java Class 6 | Java Class 6 |Threads in Java| Applets | Swing GUI | JDBC | Ac...Sagar Verma
16. Threads in Java
Non-Threaded Applications
Threaded Applications
Process based multitasking Vs Thread based multitasking
Thread API in Java
Creating Threads
States of a Thread
Synchronization for threads; static and non-static synchronized methods; blocks; concept of object and class locks
Coordination between threads - wait, notify and notifyAll methods for inter-thread communication
17. Applets
What are applets?
Need for Applets
Different ways of running an applet program
Applet API hierarchy
Life Cycle of an applet
Even Handlers for applets, mouse events, click events
18. Swing GUI
Introduction to AWT
Introduction to Swing GUI
Advantages of Swing over AWT
Swing API
Swing GUI Components
Event Handlers for Swing
Sample Calculator application using Swing GUI and Swing Event handling
19. JDBC
What is JDBC; introduction
JDBC features
JDBC Drivers
Setting up a database and creating a schema
Writing JDBC code to connect to DB
CRUD Operations with JDBC
Statement types in JDBC
Types of Rowset, ResultSet in JDBC
20. Access Modifiers in Java
What are access modifiers?
Default
Protected
Private
Public
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...Sagar Verma
Collection Framework in Java,Generics,Input-Output in Java,Serialization,Inner Classes
Collection Framework in Java
The Collections Framework - Set Interface- List Interface - Map Interface - Queue Interface -Sorting collections using utility methods
equals () and hash Code contract in Java collections
Overriding equals and hash Code methods in Java
Generics
Generics for Collections, class and methods
Input-Output in Java
What is a stream? ,Bytes vs. Characters, Java IO API ,Reading a file; writing to a file using various APIs
Reading User input from console , PrintWriter Class
Serialization
Object Serialization , Serializable Interface , De-Serializable
Inner Classes
Inner Classes ,Member Classes, Local Classes, Anonymous Classes, Static Nested Classes
Contents :
Language Concepts
How Objective C works- Basics
Data Types
NSInteger
NSNumber
Operators
Loop
Inheritance
Method Overloading
Mutable and Immutable Strings
Mutable and Immutable Arrays
File Management
iOS development Crash course in how to build an native application for iPhone.
i will be start from beginning till publishing on Apple Store step by step.
this session # 1 after the intro
Static analysis: Around Java in 60 minutesAndrey Karpov
Theory
Code quality (bugs, vulnerabilities)
Methodologies of code protection against defects
Code Review
Static analysis and everything related to it
Tools
Existing tools of static analysis
SonarQube
PVS-Studio for Java what is it?
Several detected examples of code with defects
More about static analysis
Conclusions
This ppt gives information about:
1. OOPs Theory
2. Defining a Class
3. Creating an Object
4. The $this Attribute
5. Creating Constructors
6. Creating Destructors
iPhone, the next generation mobile platform has revolutionized the way one uses phones as it's a combination of a phone, an iPod and an internet device. The iPhone is a richer platform for application delivery due to an exponential growth and wide spread usage.
The critical factor, for a successful mobile application is the end user experience: application usability, reliability, and performance which the iPhone delivers in style. There are thousands of applications created by hundreds of developers for the iPhone. This kind of innovation helps you start developing the next generation of innovative mobile applications now.
Topics Covered
* Current State of iPhone Development
* Fast Track to Objective C
* Fast Track to XCode and Interface Builder
* Getting Productive using OR-Framework, Testing, Serialization
Munjal Budhabhatti is a senior solution developer at ThoughtWorks. He possesses over 10 years of experience in designing large-scale enterprise applications and has implemented innovative solutions for some of the largest microfinance, insurance and financial organizations. He loves writing well-designed enterprise applications using Agile processes. His article on "Test-Driven Development and Continuous Integration for Mobile Applications" was recently published in the Microsoft Architecture Journal.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Understanding Nidhi Software Pricing: A Quick Guide 🌟
Choosing the right software is vital for Nidhi companies to streamline operations. Our latest presentation covers Nidhi software pricing, key factors, costs, and negotiation tips.
📊 What You’ll Learn:
Key factors influencing Nidhi software price
Understanding the true cost beyond the initial price
Tips for negotiating the best deal
Affordable and customizable pricing options with Vector Nidhi Software
🔗 Learn more at: www.vectornidhisoftware.com/software-for-nidhi-company/
#NidhiSoftwarePrice #NidhiSoftware #VectorNidhi
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
5. What is Runtime?
• C support library
• Manages classes and methods
• Handles method invocations
• Memory management routines
• Manages lifetime of weak references
6. Why should Swift care?
• Swift is a new syntax for Objective-C
• Frameworks are all in Objective-C
• NSObject and @objc
• Many of things are not possible, yet
• Swift will need its own runtime
10. Look up Class by Name
High Level
Low Level
How It Works
Used By
NSClassFromString()
objc_getClass()
objc_lookUpClass()
Runtime holds a table of all classes by
their names as keys
NSCoding, Storyboards, XIBs
11. Perform Selector by Name
High Level
Low Level
How It Works
Used By
NSSelectorFromString()
-performSelector:
sel_registerName()
objc_msgSend()
Classes store method implementations
in tables by selectors as keys
Key-Value Coding, Storyboards, XIBs,
UIControl, UIGestureRecognizer
12. Store Associated Objects
Functions
How It Works
What Is It For
Used By
objc_getAssociatedObject()
objc_setAssociatedObject()
Runtime holds side-table for each object
until it deallocates
Adding storage to objects without
adding ivars, for example rarely used
values
UIViews, Auto Layout, UIAppearance,
many more
14. Access Ivars by Name
Functions
How It Works
Used By
class_getInstanceVariable()
class_setInstanceVariable()
Instance variables are accessed
indirectly and classes contain lookup
table
Key-Value Coding, Key-Value Observing
15. Access Attributes of Properties
Functions
How It Works
What Is It For
Used By
class_getProperty()
property_getAttributes()
Classes include all info about properties,
like name, attributes, and backing ivar
Check if property is weak or strong or if
the property has ivar
Custom CALayer animatable properties
16. Enumerate Ivars & Properties
Functions
How It Works
What Is It For
Used By
class_copyIvarList()
class_copyPropertyList()
Classes include tables and metadata for
ivars and properties
Inspection of object contents
CALayer animatable properties, Core
Image Filters, automatic descriptions
17. Enumerate Methods
Function
How It Works
What Is It For
Used By
class_copyMethodList()
Classes include table of methods with
their selectors and implementations
Find methods that match a pattern
Tests & Mocks, UIAppearance
18. Enumerate Classes
Functions
How It Works
What Is It For
objc_copyClassList()
objc_copyClassNamesForImage()
Runtime holds table of all classes
loaded in your process, per executable
Find classes that match a pattern, find
all subclasses of a class
⚠
Warning: Accessing framework classes will trigger side effects!
19. Sending Messages
Function
Related
How It Works
What Is It For
objc_msgSend()
-methodForSelector:
-methodSignatureForSelector:
All [bracket calls] are translated to
objc_msgSend()
Perform selectors when standard method
-performSelector: is not enough
⚠
Warning: Requires casting to work properly!
20. Sending Messages
How it works?
- (void)updateTitle:(NSString *)title {
title = title.trimmedString;
self.title = title;
self.navigationBar.title = title;
}
21. Sending Messages
Components of a method
updateTitle: void, id, SEL, NSString *
{
title = title.trimmedString;
self.title = title;
self.navigationBar.title = title;
}
22. Selector Type Signature
Implementation
Sending Messages
Components of a method
updateTitle: void, id, SEL, id
void func(id self, SEL _cmd, id title) {
title = title.trimmedString;
self.title = title;
self.navigationBar.title = title;
}
SEL
IMP
"v@:@"
26. Add Methods to Classes
Function
Override
What Is It For
Used By
class_addMethod()
+resolveInstanceMethod:
+resolveClassMethod:
Implement methods on demand, for
example getters of @dynamic properties
Core Data, CALayer animatable
properties, UIAppearance, KVO
27. Replace Implementations
Functions
Override
What Is It For
Used By
class_replaceMethod()
method_setImplementation()
method_exchangeImplementations()
+load in categories
Extend existing framework classes with
new behaviors
UIAppearance, Key-Value Observing,
Mocking frameworks
⚠
Warning: It is not trivial to implement method swizzling properly!
28. Forward Invocations
Override
How It Works
What Is It For
Used By
-forwardInvocation:
Unrecognized selectors are passed into
this method before they throw exception
Simulate multiple inheritance, forward
methods to internal components, modify
arguments
NSProxy subclasses, NSUndoManager
29. Change Class of Object
Functions
How It Works
What Is It For
Used By
object_setClass()
Object has ivar isa, which points to the
class and is used for method lookup
Extend behavior of a single object, not
all objects of that class
Key-Value Observing, Core Data
⚠
Warning: New class should handle all methods of original class!
30. Create New Classes
Functions
How It Works
What Is It For
Used By
objc_allocateClassPair()
objc_registerClassPair()
Allocate, add methods, ivars, properties,
and then register in runtime
Customize class methods or for using
with object_setClass()
Key-Value Observing, Core Data
34. How much is it used?
Measured using symbolic breakpoints
35. Minimal Swift App
import UIKit~~~~~~~~~~~~~~~
@UIApplicationMain~~~~~~~~~~~~~~~
class AppDelegate: NSObject,~~~~~~~~~~~~~~~
UIApplicationDelegate {}
• Initializes UIApplication & Main Run Loop
• No launch Storyboard or XIB
36. Minimal Swift App
Look up Class 608×
Look up Selector 718×
Get / Set Associated Object 254× / 179×
Copy Method List 378×
Add / Change Method 13× / 1×
Create Class 13×
37. iOS Dash App
• Documentation viewer
• Standard UI components
• UIKit & WebKit
• 20k LOC of Objective-C
38. iOS Dash App
Look up Class 1357×
Look up Selector 1283×
Get / Set Associated Object 2803× / 1317×
Copy Method List 515×
Add / Change Method 87× / 14×
Create Class 18×
40. iOS Kickstarter App
Look up Class 2813×
Look up Selector 1455×
Get / Set Associated Object 4375× / 1966×
Copy Method List 496×
Add / Change Method 190× / 10×
Create Class 20×
41. PaintCode
• Vector drawing Mac app
• Custom complex UI
• 300k LOC of Objective-C
• XIBs with Cocoa Bindings
42. PaintCode
Look up Class 41189×
Look up Selector 9615×
Get / Set Associated Object 45230× / 2045×
Copy Method List 370×
Add / Change Method 664× / 1×
Create Class 112×